delphi中如何实现sql 查询从某个日期到某个日期的查询
ADOQuery.sql.text:='select*fromtable1wheredatediff(day,'+edit1.text+','+edit2.text+')...
ADOQuery.sql.text :=' select * from table1 where datediff(day, ' + edit1.text + ' , ' + edit2.text + ' ) > 0 ' ;运行不过去,提示:day没有默认值
只想实现查询从一个日期到一个日期的查询,datediff()怎么用? 展开
只想实现查询从一个日期到一个日期的查询,datediff()怎么用? 展开
3个回答
展开全部
你 语句这样写当然写错啦,试着这样写吧
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 day>= ' + edit1.text + ' and day <=' + edit2.text
看你的DAY格式可以再转换一下
datediff是返回两个日期之间的差异,你写的语句根本没有筛选到数据
语法是datediff(返回类型,起始时间,截止时间)
比如 datediff(day,'20140304','20140305')
返回1(表示1天)
返回类型有很多,比如,年,天,时,分,秒,你可以百度一下datediff
追问
qry4.sql.text:=' Select * from data1 where 日期 >= ' + edt5.Text +' and 日期 <=' +edt6.Text ;
我试了,还是不行呀,您能给举几个例子吗?关于日期筛选出从几号到几号的记录我用的是access数据库,数据库中的日期字段名为:日期,麻烦了
追答
edit里的格式要跟access里的格式一致才能比较,看你的日期是什麽格式的,用format 转换一下,
帮你查了一下,access里的datedff是不支持day参数的,只能用d作参数,所以你要把语句改为
select * from data1 where datediff('d',#2014-02-18#,日期)>0试一下
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的方法:
ADOQuery.sql.text :=' select * from table1 where 时间字段名 >= # ’+日期时间字符串+'# and 时间字段名 <= #'+日期时间字符串+' #)';
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;
比如:查询入库记录表(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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询