紧急求救 : 数据库时间段查询, 请各位大哥帮忙(100分)

  • 主题发起人 主题发起人 afei_20010929
  • 开始时间 开始时间
A

afei_20010929

Unregistered / Unconfirmed
GUEST, unregistred user!
代码:
var
picker1,picker2:string;
begin
with ZTQuery do
begin
// DateSeparator := '/'; ShortDateFormat:='yy/mm/dd';
// picker1:=Formatdatetime('yy/mm/dd',DateTimePicker1.DateTime);
// picker2:=Formatdatetime('yy/mm/dd',DateTimePicker2.DateTime);
picker1:=datetimetostr(DateTimePicker1.Date);
picker2:=datetimetostr(DateTimePicker2.Date);
ZTQuery.SQL.Text:='select czrq from ZT where (czrq>='+''''+picker1+''''
+') and (czrq<='+''''+picker2+''''+')';
// ZTQuery.SQL.Text:='select czrq from ZT where zt.czrq between :"'+picker1+'" and :"'+picker2+'"';
ZTQuery.ExecSQL;
end;
end;
这个程序用的是一本地库,库里这个字段是@(timestamp)型,库内纪录我用的是SQL insertrecrod 语句插入的,有时分秒.我现在用两个
DateTimepicker来查询一段时间内的纪录,只要从哪一天到哪一天,不要时分秒.我用了上面的方法不是运行程序后报错就是查的纪录不
对,请教各位这个语句我应该怎么写.


 
Date_End是TDateTime
Date_End := StrToDateTime(DateTimeToStr(Date_End) + ' 23:59:59');
 
谢谢你,我试一下
 
本地表,查询,日期型字段,不支持字符串。插入可以以字符串方式插入,查询不行的。
所以,你可以使用参数
ZTQuery.SQL.Text:='select czrq from ZT where (czrq>=:) and (czrq<=:)';
ZTquery.params[0].AsDateTime:=DateTimePicker1.Date;
ZTquery.params[1].AsDateTime:=DateTimePicker2.Date;


 
问题已经解决,我用的方法,就是
DateSeparator := '/'; ShortDateFormat:='mm/dd/yy';
picker1:=Formatdatetime('mm/dd/yy',DateTimePicker1.Date);
picker2:=Formatdatetime('mm/dd/yy',DateTimePicker2.Date);
将时间从新排序,然后在显示时用
DateSeparator := '-'; ShortDateFormat:='yy-mm-dd';
转换回来

不过我认为twos兄的方法更好
非常感谢各位的帮忙
 
多人接受答案了。
 
后退
顶部