求年龄 在oracle中,求的人当前的年龄?表(DateTime 出生年龄) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SELECT TRUNC((SYSDATE - DateTime)/365,0)FROM YOURTABLE; --實際年齡(幾歲幾天): select decode( sign(dif_days), 1 ,to_char(sysdate,'yyyy')-to_char(datetime,'yyyy') , --當前日期大於生日-1天 -1,to_char(sysdate,'yyyy')-to_char(datetime,'yyyy')-1, --當前日期小於生日-1天 0 ,to_char(sysdate,'yyyy')-to_char(datetime,'yyyy') --當前日期等於生日-1天 ) year, --幾歲 abs(dif_days) days --幾天 from ( select date_time, trunc(sysdate)-to_date(to_char(sysdate,'yyyy')||to_char(datetime,'mmdd'),'yyyymmdd')+1 dif_days from your_table )--虛年齡(幾歲): select to_char(sysdate,'yyyy')-to_char(datetime,'yyyy')+1 v_age from your_table 沒有考慮潤年的問題呀假如當前日期是2008年12月31日 生日是2008年1月1日就有差異例如:SQL> select TRUNC((to_date('20081231','yyyymmdd')- to_date('20080101','yyyymmdd'))/365,0) from dual;TRUNC((TO_DATE('20081231','YYY------------------------------ 1SQL> select TRUNC((to_date('20071231','yyyymmdd')- to_date('20070101','yyyymmdd'))/365,0) from dual;TRUNC((TO_DATE('20071231','YYY------------------------------ 0 flashback支持多个表同时闪回吗 请教:getString()函数 析构string时出错 救命!数据库导入下级用户的时候出错 JAVABEAN连接数据库的问题,请各位高手帮帮忙! 临时表问题 求数据交换工具 ***学习Oracle的基础哪些培训机构比较好啊?*** 小弟我学ORACLE才一天,小问题100分送上 oracle from 的东西怎么发布呀,我有代码,不知道怎么发布? 一个多层SQL语句,高手请进…… 两台ORACLE数据互导 求年龄
SELECT TRUNC((SYSDATE - DateTime)/365,0)
FROM YOURTABLE;
sign(dif_days),
1 ,to_char(sysdate,'yyyy')-to_char(datetime,'yyyy') , --當前日期大於生日-1天
-1,to_char(sysdate,'yyyy')-to_char(datetime,'yyyy')-1, --當前日期小於生日-1天
0 ,to_char(sysdate,'yyyy')-to_char(datetime,'yyyy') --當前日期等於生日-1天
) year, --幾歲
abs(dif_days) days --幾天
from (
select date_time,
trunc(sysdate)-to_date(to_char(sysdate,'yyyy')||to_char(datetime,'mmdd'),'yyyymmdd')+1 dif_days
from your_table
)--虛年齡(幾歲): select to_char(sysdate,'yyyy')-to_char(datetime,'yyyy')+1 v_age
from your_table
假如當前日期是2008年12月31日
生日是2008年1月1日就有差異
例如:SQL> select TRUNC((to_date('20081231','yyyymmdd')- to_date('20080101','yyyymmdd'))/365,0) from dual;TRUNC((TO_DATE('20081231','YYY
------------------------------
1SQL> select TRUNC((to_date('20071231','yyyymmdd')- to_date('20070101','yyyymmdd'))/365,0) from dual;TRUNC((TO_DATE('20071231','YYY
------------------------------
0