当前位置:编程学习 > Delphi >>

Delphi时间查询问题

我数据库表table1中有个日期类型的字段Date, 窗体中有个comboBox1,还有一个Button1.我想要的效果是:在comboBox1输入数字,如5,再点击Button,则在dbgird中显示出表table1中Date小于当前今天日期或将在5天内就可以达到当前日期的表table1中的所有信息。举个例子吧,表中Date字段有3条数据2009-10-1,2009-11-10,2009-11-31;当前日期为2009-11-5,在comboBox1输入10,点击Button则查询出的结果为:表中Date字段值为2009-10-1,2009-11-10的记录。
请各位大侠写出代码。效果好的话再加30分!
追问:interval 是什么类型啊?我运行的时候系统说没有定义!还有这个地方“+ ComboBox1.Text”,系统说数据类型不匹配!怎么改呢?你再好好看看行吗?麻烦了!
答案:

在SQL查询语句加上条件选择,使用DateDiff判断时间

大致是

interval := 'd'; //时间比较以天为单位

with AdoQuery1 do

begin

Close;

SQL.Clear;

SQL.Add('SELECT * FROM <表名> WHERE DateDiff('''+interval+''',Now(),Date)<0 OR DateDiff('''+interval+''',Now(),Date)<=' + ComboBox1.Text); //DateDiff返回值小于0,表示小于今天日期

Open;

end;

对查询语句设置Where条件便可。

Where Date < GetDate() Or Date - GetDate() <= Combobox1.text

大体就是这样。

上一个:delphi 窗体设置问题
下一个:delphi出现错误问题

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,