ORACLE9.2里怎样通过日期计算筛选出符合条件的记录,请教具体SQL语句该怎么写?感激涕凌!

时间:2022-04-23 03:03:18
表名:KSS_RFPERSON_USER 某字段为 出生日期(BIRTH_D):1979-8-12  DATE型,怎样根据出生日期筛选出年龄在18-25岁之间的记录,请教具体SQL语句该怎么写?感激涕凌!

2 个解决方案

#1


select  floor(sysdate  -  KSS_RFPERSON_USER.BIRTH_D)  days, KSS_RFPERSON_USER.* from KSS_RFPERSON_USER   where days between 18*365 and 25*365

将sysdate和你的日期字段格式一致

#2


楼上的不够精确
select * from  KSS_RFPERSON_USER   
where 
to_date(to_char(sysdate,'YYYY')-25||to_char(sysdate,'MMDD'),'YYYYMMDD')-birth_d<0
and 
to_date(to_char(sysdate,'YYYY')-18||to_char(sysdate,'MMDD'),'YYYYMMDD')-birth_d>0

也就是说
今天是2004-08-16,那么1979-08-15就不算是25岁了

#1


select  floor(sysdate  -  KSS_RFPERSON_USER.BIRTH_D)  days, KSS_RFPERSON_USER.* from KSS_RFPERSON_USER   where days between 18*365 and 25*365

将sysdate和你的日期字段格式一致

#2


楼上的不够精确
select * from  KSS_RFPERSON_USER   
where 
to_date(to_char(sysdate,'YYYY')-25||to_char(sysdate,'MMDD'),'YYYYMMDD')-birth_d<0
and 
to_date(to_char(sysdate,'YYYY')-18||to_char(sysdate,'MMDD'),'YYYYMMDD')-birth_d>0

也就是说
今天是2004-08-16,那么1979-08-15就不算是25岁了