有一SQL语句的时间字段查询如下: with f_tjhz.data_sql do
begin
close();
sql.text:='SELECT * FROM sqfy where convert(char(10),wcdate,023)='
+QuotedStr(datetostr(DateTimePicker1.Date));
end;数据库里的wcdate字段有些是带有时间的(如2008-06-11 17:17:52.000),有些手工输入是不带时间的(如2008-05-28)
现在问题是,当程序运行时,在DateTimePicker1选只有日期,用了convert(char(10),wcdate,023)截掉时间部分,但怎么都查询不到数据,比如库里有很多是等于这个时间(2008-06-11 17:17:52.000)的记录,在DateTimePicker1选2008-06-11就是查不到记录,而用2008-5-28又可以查出来,难道转换convert(char(10),wcdate,023)有问题吗??请高手指点!!
begin
close();
sql.text:='SELECT * FROM sqfy where convert(char(10),wcdate,023)='
+QuotedStr(datetostr(DateTimePicker1.Date));
end;数据库里的wcdate字段有些是带有时间的(如2008-06-11 17:17:52.000),有些手工输入是不带时间的(如2008-05-28)
现在问题是,当程序运行时,在DateTimePicker1选只有日期,用了convert(char(10),wcdate,023)截掉时间部分,但怎么都查询不到数据,比如库里有很多是等于这个时间(2008-06-11 17:17:52.000)的记录,在DateTimePicker1选2008-06-11就是查不到记录,而用2008-5-28又可以查出来,难道转换convert(char(10),wcdate,023)有问题吗??请高手指点!!
+' and wcdate <='+#39+formatDateTime('yyyy-MM-dd,now)+' 23:59:59+#39;
//试试这样写
select * from t where dt=convert(varchar(10),dt,023)
+QuotedStr(FormatDateTime('yyyy-mm-dd', DateTimePicker1.Date));