【问题标题】:DateTime filtering doesn't work日期时间过滤不起作用
【发布时间】:2012-05-07 09:45:44
【问题描述】:

我在 Visual Studio (SQL Server Compact Edition) 中有一个本地数据库,其中有一个包含几列的表。其中一列的数据类型为DateTime。当我插入一行时,我在 C# 中使用 DateTime.Now 添加日期/时间值。

当我做一个

SELECT * FROM ...

我看到日期时间格式是7-5-2012 11:41

但现在我需要使用 where 子句进行选择查询,以便结果介于特定日期之间。当我使用DateTime.Now 函数来设置我得到0行之间时,我找不到在日期/时间之间进行过滤的方法。但是当我通过设置手动设置之间时

WHERE date BETWEEN '7-5-2012 00:00' AND '8-5-2012 00:00'

即使这样我也得到了 0 个值。

我也尝试用SqlCeCommands 来做,但给出的是同样的问题,0 行返回。

有谁是我做错了什么或者我是如何让它工作的?

提前谢谢你!

【问题讨论】:

    标签: c# sql datetime sql-server-ce


    【解决方案1】:

    可能是你的日期格式错误,你应该使用查询命令参数:

    command.CommandText = "SELECT * FROM ... WHERE date BETWEEN @lowb AND @highb";
    command.Parameters.Add( "@lowb", SqlDbType.DateTime, new DateTime(...));
    command.Parameters.Add( "@highb", SqlDbType.DateTime, new DateTime(...));
    

    【讨论】:

      【解决方案2】:

      试试这个:

      "..spRis_GetListaDocs @DateFilter = '" + Convert.ToDateTime(txtDate.Text).ToString("yyyy-MM-dd") + "'"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-03
        • 2023-04-05
        • 1970-01-01
        • 2020-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-01
        相关资源
        最近更新 更多