访问SQL日期格式

时间:2011-12-15 21:00:08

标签: sql database ms-access

如何根据Date属性检索记录?我在尝试:

WHERE Meetings.[MDate] = '16/12/2011'

这是我使用的格式,但我得到:

  

“条件表达式中的数据类型不匹配”


问题解决了:应该是:

WHERE Meetings.[MDate] = 16/12/2011

没有引号。

3 个答案:

答案 0 :(得分:13)

对于where子句使用

columnName = #mm/dd/yyyy#

答案 1 :(得分:10)

您需要使用SQL日期格式:'#2011-12-16#'

答案 2 :(得分:4)

使用强制转换为DATETIME函数CDATE(),它将遵循机器的区域设置。也就是说,使用明确的日期格式仍然是一个好主意,而ISO 8601格式是一个很好的格式。

另请注意,Access没有日期数据类型:其唯一的时态数据类型为DATETIME,顾名思义,始终的时间元素精确到一秒时间颗粒,即使那个时间恰好是午夜。因此,最好始终在所有DATETIME文字中包含一个第二时间粒度的时间值,例如:

WHERE Meetings.MDate = CDATE('2011-12-16 00:00:00');

上述的另一个优点是Access UI不会尝试重新格式化DATETIME文字,因为它保存为字符串。