数据库中对日期字段的操作(50分)

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

ctx

Unregistered / Unconfirmed
GUEST, unregistred user!
在设计数据库时经常会遇到日期的操作,
例如:我想过滤年龄小于35岁的人,如何根据出生日期来过滤,
象vfp中用yeah(date())取出再减去35,lacte for yeah(出生日期)>=yeah(date())-35
在delphi中我不知道该如何使用。我是初学delphi,望各位高手赐教
 
什么库? SQL Server 可使用如下语句:
select * from table
where year(getdate())-year(birthday)>35
 

procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);
可将年月日分开,运算后再用
function EncodeDate(Year, Month, Day: Word): TDateTime;合成。

其实delphi的tdatetime就是浮点数,加1天就加1,加1小时就加1/24。
 
唉,来晚了,没我什么事了。 :)
 
在Oracle中可用如下Sql:
select * from table
where trunc(出生日期,'yyyy') <= ADD_MONTHS(trunc(sysdate,'yyyy'),-12*35)

在delphi中可用Query的fielter property
 
我有一例子,可以借鉴一下!
procedure TForm7.FormShow(Sender: TObject);
var
year,month,day:word;
present:Tdatetime;
begin
present:=now;
decodedate(present,Year, Month, Day);
下面通过分解的变量Year, Month, Day来判断是否小于35岁
...............
End;
 
搞定了吗。
 
多人接受答案了。
 
后退
顶部