2013-03-11 31 views
1

我對VS和.NET相當陌生。VS 2005 DateTime選擇器日期值和SQL比較

我已經創建了一個新的表單(在現有的VB.NET應用程序中),用於將數據從SQL Server 2008數據庫檢索到DataGridView控件中。

我還需要允許我的用戶過濾顯示的數據,所以我添加了兩個Datetimepicker控件 - 一個用於開始日期,另一個用於結束日期。

當用戶點擊'應用過濾器'按鈕我想要過濾網格客戶端的數據(它只是複製和粘貼到MS Excel)或重新查詢數據庫使用兩個日期作爲過濾器。 ..

所以我建立了一個SQL查詢字符串在我的VB代碼:

sSQLQry = "SELECT * FROM ReturnUnpaidData_Audit WHERE [AuditDateTime]<= " & Me.dtPicketEndDate.Value.ToString & " AND [AuditDateTime]>= " & Me.dtPicketEndDate.Value.ToString 

,這給了我一個查詢字符串是這樣的:

SELECT * FROM ReturnUnpaidData_Audit WHERE [AuditDateTime]>= 01/03/2013 15:28:09 AND [AuditDateTime]>= 01/03/2013 15:28:09 

其中(UN令人驚訝的)不起作用...

所以我有點卡住 - 有人可以指引我在正確的方向或幫助我找到最好的方式來做到這一點。

順便說一句,這是一個小的應用程序,沒有太多的數據(onoy最有可能是幾排),4個或5個用戶...您需要'行情沒有必要過於擔心大數據或表現

回答

1

在日期值周圍,並且沒有時間格式化它?
WHERE [AuditDateTime]<='" & Me.dtPicketEndDate.Value.ToString("yyyy-MM-dd") & "'"

此外,BETWEEN稍微優雅。
http://msdn.microsoft.com/en-us/library/ms187922.aspx

+0

+1也顯示我的格式! – 2013-03-11 16:19:50

+0

不客氣,歡呼:) – 2013-03-11 16:33:25

1

由於只使用無時間的日期值。你也可以使用 DtPicketEndDate.Value.date,而不是格式。