WIXOO

Digest

access日期型数据sql查询遇到的问题

作者:No.1网络工作室 发布时间 11/02/08 来源 No.1网络工作室

今天做个小东西,正巧碰到有日期型数据进行查询,说实话这个问题根本不算什么问题,居然让我整整花费了1个小时才弄明白,因为很长时间不写程序了,所以遇到这个问题比较茫然

我是这样写的sql语句

sqlstr = "select * from test where datefield='"&date()&"'"

结果运行就是提示表达式类型不正确,浪费了很长时间才想起来,access和sql日期型数据写法不一样,该死的access,正确写法应该是sqlstr="select * from test where datefield=#"&date&"#"

因为access里面日期型数据是用#括起来的,哎。。。这个问题解决后真是让人不爽,这叫什么问题!!!

还有一个小问题也值得提示大家一下下:

有的时候我们会设置日期型数据默认值:now()

这样的话,存在数据库里面的日期型数据就是例如:2010-01-01 11:00:00,这样

不过我们在sql语句查询相同一天的时候一般都写成sqlstr = "select * from test where datefield=#date()#",其实这很明显是一个错误,因为date()获取的值是只有日期的2010-01-01,所以比较的时候肯定是查询不到记录的,所以我们应该写成

sqlstr = "select * from test where year(datefield)=#"&year(now())&"# and month(datefield)=#"&month(now())&"# and day(datefield)=#"&day(now())&"#"

这样才可以查询到记录。。。

以上两个简单的问题看着不算什么问题,不过第一次遇到这种问题的人会很头疼,同时也会浪费许多时间,所以在这里就当提示大家了。。。