关于日期的模糊查询。(Interbase)(35分)

  • 主题发起人 主题发起人 ldstudio
  • 开始时间 开始时间
L

ldstudio

Unregistered / Unconfirmed
GUEST, unregistred user!
在 Interbase 数据库中如何对日期型字段如何找出5月份的所有记录。
用 SQL 语句。
分全在这里了!
 
select * from table where datefield>='2001-05-01' and datafield < '2001-06-01'
or
select * from table where datefield between '2001-05-01' and '2001-06-01'

 
select extract(month from field_date) from....
 
sundart的方法没问题,Boat的方法应该
select * from table where extract(month from field)=months
要判断年的话用 extract(year from Field )

 
sundart 的方法只能查找某一年的数据,但我需要的是 “历年的数据”。
Boat 及 ZhengFei 的方法无法通过,在...(month from...) 中的 from 处报错。

 
我也很想知道。
 
贴之前我试过,没问题。
刚才又试了一下,能取得“历年的数据”
extract(month from DataFieldName)
我的IB是6。01。
如还不行,请参照IB帮助中详细说明。
 
张承国试验:


建立一表,名 kehu.db 其中一字段borth为日期型字段,表单上放置query1,
datasource1,dbgrid1,datetimepicker1,botton1 等控件,目的是从表中把
一定时间范围内的数据查询出来,按日期字段。
1、成功第一次:
select * from kehu where borth="01/07/05"

2、成功第二次:

Query1.Close;
Query1.Sql.Clear;
query1.sql.add('select * from kehu');
query1.sql.add('where borth='''+datetostr(DateTimePicker1.Date)+'''');
Query1.Open;

在控制面板区域设置里,修改时间格式为 mm/dd/yyyy 样式,因为无论日期
格式是怎样, where borth="10/02/1970" 才能正常查询,所以干脆把日期格
式改成这样算了。
 
Interbase 6.01 可以,5.X 不行。
zhcg 的方法不适用于 Interbase。
用此方法好象也行.
select datefieldname,cast(datefieldname as char(10) from tablename
where cast(datefieldname as char(10) like '%MAY%'
 

Similar threads

回复
0
查看
994
不得闲
D
回复
0
查看
928
DelphiTeacher的专栏
D
后退
顶部