操作系统:win98 编程工具:VB6+mssql 问题:我有一SQL数据库,其中有一表中有一字段:进货时间 为短日期型,在SQL下对该字段进行查询无任何问题,但用VB+ADO查询则无法返回正常结果。比如我在VB中用SQL语句 Select * From 表1 Where 进货时间>='2000-10-12' ,则返回所有记录,而不论条件日期为那一天,如果用<'2000-10-12'则无任何记录返回,不知何故? 水平: 刚入门(谷新生)
在查询的时候,使用下列语句是正确的: 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')) 结果都是正确的!