一个关于过滤器的问题(50分)

  • 主题发起人 主题发起人 cslotus
  • 开始时间 开始时间
C

cslotus

Unregistered / Unconfirmed
GUEST, unregistred user!
表中有一项TDateTime型数据,现要过滤出某一年的数据,如何设置过滤器?
如:2002-01-01,则过滤出2002
 
加入一个TQuery,
SQL语句设置为select * from 表名 where 列名>='时间1' and 列名<='时间2'
 
同楼上一样,建议用SQL取出符合条件的记录
在ACCESS及MSSQL中SQL这么写

SELECT * FROM table1 WHERE year(rq)=2002

在PARADOX中

select * from "c:/temp/table1.db" where EXTRACT(YEAR FROM rq)=2002

 
filter:=year(rq)=2002
然后filtered:=True
 
To pcspace and QuickSilver:需用过滤器而不是Query
To glbboy:year是什么方法?试了好象不行?
 
Year是SQL Server数据库本身的函数,如果是ACCESS那是不行的!
 
copy(Table1.FieldByName( '出生日期' ).AsString,1,4)
 
To glbboy: 用的是Access数据库,日期以String类型存放,如何解决该问题?
 
rq like '''+2002+'%''
%位置自己移移看。
 
To:glbboy
不能用Like,过滤器不支持这样的方法
 
利用 RQ>dATE1 AND rq<=dATE2
 
可以变通的。
 
自己研究出两种方法,与大家共享:
1.若为String型,则可用字符串比较,如 '2002-01-01' <= '2002' < '2003-01-01'
2.若为TDateTime型,则需在日期前后加上#,如 rq > #2002-01-01#
以上均为Access2k数据库,SQL Server和Oracle有函数可使用。
 
多人接受答案了。
 
后退
顶部