ACCESS因DATETIME查询失败

时间:2016-08-31 13:41:28

标签: c# datetime ms-access

我有一个简单的查询,它根据DateTime字段提取一些记录。 我无法解释为什么,但有一些日期它不起作用(null结果)。 它似乎与月末的第一天不起作用,而它适用于最后几天(第10天及以上)。

Access Table and SQL Query

在上面的示例中,它与#04/09/2016#无法同时使用#09/09/2016#!

它可能取决于日期格式吗?

2 个答案:

答案 0 :(得分:1)

在SQL视图中,日期始终写为#mm/dd/yyyy#,即使在设计视图中它是#dd/mm/yyyy#。所以你的SQL要求4月9日。这是你的意图吗?

答案 1 :(得分:0)

  

那么如何以编程方式传递正确的日期格式(我使用c#)?

     

...

     

它可以像今天一样格式化日期.toString(" MM / dd / yyyy")。

如果您正在使用C#,则将日期格式化为字符串以构建查询(使用动态SQL )。您应该使用参数化查询,如下所示:

var day = new DateTime(2016, 9, 4);
using (var cmd = new OleDbCommand("SELECT * FROM Prenotazioni WHERE DataArrivo=?", conn))
{
    cmd.Parameters.AddWithValue("?", day);
    using (OleDbDataReader rdr = cmd.ExecuteReader())
    {
        while (rdr.Read())
        {
            // do stuff
        }
    }
}