访问SQL日期格式

Asd*_*ksf 10 sql database ms-access

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

WHERE Meetings.[MDate] = '16/12/2011'
Run Code Online (Sandbox Code Playgroud)

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

"标准表达式中的数据类型不匹配"


问题解决了:应该是:

WHERE Meetings.[MDate] = 16/12/2011
Run Code Online (Sandbox Code Playgroud)

没有引号.

Ric*_*uza 13

对于where子句使用的地方

columnName = #mm/dd/yyyy#
Run Code Online (Sandbox Code Playgroud)


com*_*ech 10

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


one*_*hen 5

使用强制转换DATETIME功能,CDATE(),这将尊重机器的区域设置。也就是说,使用明确的日期格式仍然是一个好主意,而ISO 8601格式是一个很好的格式。

另请注意,Access 没有日期数据类型:它唯一的时间数据类型是DATETIME,正如其名称所暗示的那样,始终具有精确到一秒时间粒度的时间元素,即使该时间恰好是午夜。因此,在所有DATETIME文字中始终包含一个时间值到一秒时间颗粒是一个好主意,例如

WHERE Meetings.MDate = CDATE('2011-12-16 00:00:00');
Run Code Online (Sandbox Code Playgroud)

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