2011-11-14 303 views
1

我可以按日期我使用Visual Studio 2010和C#這裏 不能過濾是簡化的說法我嘗試沒有成功過濾器在不工作

SELECT  date_dt, ident_1, ident_2, ident_3 
FROM   p240538 
WHERE  (date_dt >= DateTime('"2011'/10/'19"')) 

SELECT  date_dt, ident_1, ident_2, ident_3 
FROM   p240538 
WHERE  (date_dt >= "2011/10/19")) 

SQL語句日期有任何想法嗎??

感謝

+1

您是否獲得任何結果或錯誤消息? – Zeph

回答

0

我覺得你很接近看起來像你想要的東西,如:

SELECT  date_dt, ident_1, ident_2, ident_3 
FROM   p240538 
WHERE  (date_dt >= DateTime(2011, 10, 19)) 

編輯: 首先想到這是一個linq問題,提交後它意識到這是一個sql問題。嘗試:

SELECT  date_dt, ident_1, ident_2, ident_3 
FROM   p240538 
WHERE  (date_dt >= convert(DateTime, '10/19/2011', 101) 
+0

非常感謝 –

0
SELECT  date_dt, ident_1, ident_2, ident_3 
FROM   p240538 
WHERE  datediff(dd, date_dt, getdate()) <= @theMaxNumberOfDayDifference 

什麼你要找的是SQL Server的DATEDIFF功能。它所做的是比較日期。我用一個變量來比較它,但如果你喜歡,你可以在那裏有一個硬編碼的值。它所做的是將您的date_dt字段與當前日期進行比較。如果天數(您可以將dd更改爲我的鏈接中指定的任何其他比較範圍)小於或等於今天的日期,那麼它將返回這些記錄。

編輯:這是假設date_dt字段是datetime或等效的數據類型。您也可以用getdate()替換任何有效的datetime規範,包括您希望與之比較的日期時間字符串。

0

你爲什麼不嘗試:

SELECT date_dt, ident_1, ident_2, ident_3 
FROM  p240538 
WHERE  CONVERT(VARCHAR, date_dt, 112) >= 20111019 

當然,這將有助於我們更好,如果你能提供date_dt列的數據結構/類型/設置(因爲我的建議可能會徹底改變應該date_dt 。?是一個指標,什麼樣的日期,你需要提供(如果它總是在yyyy/mm/dd格式)是日期也是一個參數

+0

date_dt是日期/時間 –

+0

@BayoAlen好的,然後檢查我的答案。這應該是你要找的。 – 2011-11-14 19:37:09

-1

嘗試......

 
SELECT date_dt, ident_1, ident_2, ident_3 
FROM p240538 
WHERE date_dt >= '10/19/2011' 
的代碼是SQL和無關的Visual Studio或C#

+0

自己實際進行轉換的主要原因是您知道常量的格式,如果您不告訴它,SQL Server可以輕鬆地獲得月份和日期部分的混淆。在大多數情況下,你的答案會起作用,但不是全部。 –