关于 sql语句 日期查询 问题
我有 delphi 中日期控件 DateTimePicker1 得到日期格式为: 2007-5-2
sql server 2000 库中表的日期 字段: dDate 类型:datetime ,日期格式为
2006-02-05 00:00:00.000
我通过sql 语句查询 日期范围 在某一段日期范围内的记录. 查不到~~
select * from currentstock where convert(varchar(10),dDate,121) between ' ' '+datetostr(BeginDateTimePicker1.DateTime)+ ' ' ' and ' ' '+datetoste(EndDateTimePicker1.DateTime)+ ' ' '
查询后得到的结果是 空记录. 不知道是哪出了问题~~
会不会是 控件输入日期格式: 2006-5-2 但是数据库中的字段convert(varchar(10),dDate,121) 日期比较格式 : 2006-05-02 .所以查到的是空记录.
要怎么解决, 控件输入日期格式: 2006-5-2 和数据库中日期中 月和日 位数为1位时前面加 0 .
------解决方案--------------------如果是日期按道理是没问题的.
楼主试试把BeginDateTimePicker1.DateTime用tostring( "yyyy-MM-dd ")试一下吧.
------解决方案--------------------select * from currentstock where convert(varchar(10),dDate,121) between ' ' '+datetostr(BeginDateTimePicker1.DateTime)+ ' ' ' and ' ' '+datetoste(EndDateTimePicker1.DateTime)+ ' ' '
改为
select * from currentstock where convert(datetime,convert(varchar(10),dDate,121)) between ' ' '+datetostr(BeginDateTimePicker1.DateTime)+ ' ' ' and ' ' '+datetoste(EndDateTimePicker1.DateTime)+ ' ' '
------解决方案--------------------或者不用convert(varchar(10),dDate,121)) 直接用 dDate