主题:请问,怎样筛选某一范围日期记录???
lazyattlantic
[专家分:0] 发布于 2007-03-12 22:42:00
我在窗口上有两个edit控件,用来输入开始时间和结束时间,点击“查询”按钮后要在grid控件中显示这一范围内的记录值。我用select语句编程:select * from 表名 where 日期字段>=edit1.text and 日期字段<=edit2.text;是错误的。但是又没找到将字符型转换为日期型的函数,该怎样实现日期在某一范围内的记录筛选呢?请指教!
回复列表 (共10个回复)
沙发
长尾兔 [专家分:3630] 发布于 2007-03-13 07:52:00
SQLString := 'select * from 表名 where 日期字段 >= Cdate(' + #39 + edit1.text + #39 + ') and 日期字段 <= Cdate(' + #39 + edit2.text + #39 +')'
板凳
糖醋鼻子 [专家分:110] 发布于 2007-03-13 18:53:00
access数据库要使用#号来扩起日期值,比如:
cdate=#2006-02-02#
3 楼
lazyattlantic [专家分:0] 发布于 2007-03-14 18:21:00
我用的不是access数据库,我用的是delphi自带的数据库建的。我试了一下还是错了[em17]
4 楼
lazyattlantic [专家分:0] 发布于 2007-03-14 18:56:00
我用delphi自带的数据库建了表,然后在窗口上放置了两个edit控件,用来输入开始日期和结束日期,点击查询按钮后,根据开始日期或结束日期筛选符合条件的数据显示在grid中。但是我的select语句老是在日期的比较上出错(select * from 表名 where 日期字段>''%'+edit1.text+'%'' and 日期字段<''%'+edit2.text+'%'';)错误提示是:type mismatch in expression
5 楼
冰封星云 [专家分:2260] 发布于 2007-03-15 11:49:00
edit.text是字符串类型要转换成日期类型
Format()
6 楼
lazyattlantic [专家分:0] 发布于 2007-03-15 18:38:00
format命令不能把字符串格式化成日期型
7 楼
zwt [专家分:1230] 发布于 2007-03-16 11:12:00
用formatdatetime
8 楼
lazyattlantic [专家分:0] 发布于 2007-03-16 18:40:00
formatdatetime是将日期以指定的格式输出呀
9 楼
lazyattlantic [专家分:0] 发布于 2007-03-16 18:44:00
我主要是根据日期筛选记录,比如酒店里查询系统,根据客人入住时间,筛选出客人记录。
10 楼
Reaj [专家分:0] 发布于 2007-03-26 18:04:00
select * from table where date>='''+strtodate(''+trim(edit1.text)+'')+'''and'''+strtodate(''+trim(edit2.text)+'');
我来回复