VS 2005 DateTime Picker日期值和SQL比较

时间:2013-03-11 15:58:48

标签: sql vb.net sql-server-2008 visual-studio-2005

我是VS和.NET的新手。

我创建了一个新表单(在现有的VB.NET应用程序中),它将数据从SQL Server 2008数据库检索到DataGridView控件。

我还需要允许我的用户过滤显示的数据,所以我添加了两个Datetimepicker控件 - 一个用于开始日期,一个用于结束日期。

当用户点击“应用过滤器”按钮时,我想过滤网格客户端中的数据(仅用于复制和粘贴到MS Excel中)或使用两个日期作为过滤器重新查询数据库。

所以我在我的VB代码中构建了一个SQL查询字符串,如下所示:

    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

(不出所料)不起作用......

所以我有点陷入困境 - 有人能指出我正确的方向或帮助我找到最好的方法。

顺便说一下,这是一个小应用程序,没有太多数据(最有可能排在几行),4或5个用户......不需要太担心大数据或性能

2 个答案:

答案 0 :(得分:1)

您需要在日期值周围加上引号,并在没有时间的情况下对其进行格式化吗? WHERE [AuditDateTime]<='" & Me.dtPicketEndDate.Value.ToString("yyyy-MM-dd") & "'"

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

答案 1 :(得分:1)

由于您只使用日期值而没有时间。您也可以使用 DtPicketEndDate.Value.date而非格式化。