首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于 sql语句 日期查询 有关问题

2012-01-12 
关于 sql语句 日期查询 问题我有delphi中日期控件DateTimePicker1得到日期格式为:2007-5-2sqlserver2000库

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

热点排行