日期:2014-05-18  浏览次数:20439 次

关于 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