 |
在查询的时候,使用下列语句是正确的:
SELECT * FORM 表一 WHERE 进货时间>=#2000-10-12#
查询时的语句最好使用长格式时间,否则会出现“2000”年问题。希望答案会对你有帮助。
cyy的意见:
这个问题好多人都遇到过,我的解决办法是在ACCESS中:"Select * From 表 1 Where 进 货 时 间 >=#" & format(日期变量,"yyyy-mm-dd") & "#"
不需做其他改变,应该会OK啦。如果是SQL SERVER,,则需要将#改成',无论长格式或短格式都通用的,我试过了!
yubin的意见:
我也遇到过类似的问题,用上面的方法,加##,会出现错误,可能这种方法只适合MS Jet引擎。后来我发现如果用单引号把日期括起来,就可以实现。如下:select * from Table1 where Time between '07/01/2001' and '08/01/2001'
注:时间字段用datetime类型'mm/dd/yyyy'格式存储。其他方式没试过。
楚禹的意见:
这个问题我也遇到过我的解决方法是加个数据类型转换函数,如select * from tablename where(日期>cdate('2003-02-01'))
结果都是正确的!
LuckyLu的意见:
我在调试程序时也遇到相同的问题,其解决办法是把VB时间转换为SQL时间格式:#02/01/25#转换为#01/25/02#。
卢志渊的意见:
以上问题我的做法是把日期时间转化成SQL日期格式,直接比较就行了。在Delphi下如有TDateTime型变量MyTime,SQL语句可这样写:s:=Format('select*from table1 where 进货时间 >= %f',[MyTime]),VC下可用COLEDateTime类,方法相同。VB我不太熟悉,想必也有类似的时间类型。这个方法还有一个好处就是可以将查询时间精确到时分秒,我试过,用前面说过的方法都达不到这样的效果。
零度。COM问: 如果我的ACCESS数据库里的日期格式为(YYYY-MM-DD HH-MM-SS)怎么办?日期和时间并存在一个字段里,我的查询语句:rs.open "select date(updatetime) from imgbook where #updatetime#=#2003-7-30#",conn,1,1
不起任何作用,提取不了真实数据
jackew答:去掉updatetime前后的#号,如:
rs.open "select date(updatetime) from imgbook where updatetime = # " & cdate("2003-7-30 15:30:20") & "#",conn,1,1
调适过了,ok。
此问题由zhangyang等回答。
附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, SQL查询, sql server, sql, query, select。
|