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()怎么用?
展开
 我来答
百度网友7558ae7
2014-03-04 · TA获得超过5797个赞
知道小有建树答主
回答量:1730
采纳率:50%
帮助的人:1697万
展开全部
你 语句这样写当然写错啦,试着这样写吧
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试一下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
若若earth
2014-03-05 · 超过13用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:21.5万
展开全部
我的方法:
ADOQuery.sql.text :=' select * from table1 where 时间字段名 >= # ’+日期时间字符串+'# and 时间字段名 <= #'+日期时间字符串+' #)';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
none_six
2015-10-05 · TA获得超过325个赞
知道小有建树答主
回答量:479
采纳率:100%
帮助的人:368万
展开全部
如果是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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式