有一张表a
有一字段为inputdate(为日期型)
from1上有两个datatimepicker(分别为起始时间和终止时间)
另有adoquery1
我想把表中凡在这两个时间段的记录给select出来
这个sql怎么写?
有一字段为inputdate(为日期型)
from1上有两个datatimepicker(分别为起始时间和终止时间)
另有adoquery1
我想把表中凡在这两个时间段的记录给select出来
这个sql怎么写?
调试欢乐多
select * From 表2
where inputdate>=fromdate
and inputdate<=todate
只用精确到天:
select * From 表2
where datediff(day,inputdate,fromdate)<=0
datediff(day,inputdate,todate)>=0
begin
Close;
Sql.Clear;
Sql.Text:='select * from 表a where inputdate>='''+dataToStr(Datatimepicker1.Data)+''' and inputdate <='''+dataToStr(Datatimepicker1.Data)+''''
Open;
end;
adoquery1.sql.text :=' select * From 表2 where inputdate>=''' + datetimepicker1.text + ''' and inputdate<=''' + dateimepicker2.text +'''';
adoquery1.open;
adoquery1.Params[0].AsString := FormatDateTime('yyyy-mm-dd',datetimepicker1.Date)
adoquery1.Params[1].AsString := FormatDateTime('yyyy-mm-dd',datetimepicker2.Date)
比如:起始: 03-9-3 终止:03-9-5
明明程序中是inputdate<=:dtae2
但我5日的数据为什么不显示?
也就是有日期也有时间的
实际上我上面的问题精确到天就可以了
那怎么写?
所以可以直接用关系比较符(<,>,=)来比较日期类型分长短
要是数值比较出现异常
可以转换成字符串来比较
adoquery1.Params[0].AsString :=
FormatDateTime('yyyy-mm-dd 00:00:00',datetimepicker1.Datetime)adoquery1.Params[1].AsString :=
FormatDateTime('yyyy-mm-dd 23:59:59',datetimepicker2.Datetime)