你 语句这样写当然写错啦,试着这样写吧
ADOQuery.sql.text :=' select * from table1 where day>= ' + edit1.text + ' and day <=' + edit2.text
看你的DAY格式可以再转换一下
datediff是返回两个日期之间的差异,你写的语句根本没有筛选到数据
语法是datediff(返回类型,起始时间,截止时间)
比如 datediff(day,'20140304','20140305')
返回1(表示1天)
返回类型有很多,比如,年,天,时,分,秒,你可以百度一下datediff
我的方法:
ADOQuery.sql.text :=' select * from table1 where 时间字段名 >= # ’+日期时间字符串+'# and 时间字段名 <= #'+日期时间字符串+' #)';
如果是Access数据库,在查询日期的SQL语句中,要把日期左右都添加上#才行。
比如:查询入库记录表(rkjl)中指定的两个入库日期之间的记录时,就可以用以下查询语句。
Var FindSql:String;
FindSql:='Select * From rkjl where '
+'入库日期>='+'#'+DateToStr(Dtp_StartDate.Date)+'#'
+' and 入库日期<='+'#'+DateToStr(Dtp_EndDate.Date)+'#';
ADOQ_RKJL.Close;
ADOQ_RKJL.SQL.Clear;
ADOQ_RKJL.SQL.Add(FindSql);
ADOQ_RKJL.Open;