读书人

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

发布时间: 2012-01-12 22:11:58 作者: rapoo

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

读书人网 >SQL Server

热点推荐