2011-12-15 70 views
10

如何根据Date属性检索记录?我想:访问SQL日期格式

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

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

“标准表达式中数据类型不匹配”


问题解决了:应该已经:

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

不带引号。

+1

是什么工具? MSACCESS? – wallyk 2011-12-15 21:01:19

回答

10

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

13

对于where子句中使用

columnName = #mm/dd/yyyy# 
4

使用CAST到DATETIME功能,CDATE(),这将兑现机器的区域设置。尽管如此,使用明确的日期格式仍然是一个好主意,并且ISO 8601格式是一个不错的格式。

还要注意的是Access没有日期数据类型:其唯一的时间数据类型为DATETIME,正如它的名字所暗示的,总是有一个时间元素精确到秒的时间颗粒,即使那个时候发生是午夜。因此,总是在所有的文字中包含一个时间值到一秒钟的粒子是一个好主意,例如,

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

另一个优点以上就是访问UI将不会尝试重新格式化DATETIME文字,因为它被保存为一个字符串。