oracle:根據出生日期計算年齡

表結構:

person表中birthday字段存放出生日期,現在根據person表的birthday字段計算出人的年齡:

首先獲取當前時間,並用當前時間減去出生日期的年份

select 
sysdate as 當前時間,
birthday as 出生日期,
sysdate-numtoyminterval(to_char(birthday,'yyyy'),'year') as 當前時間與出生日期的年份差 
from person

 當前系統時間減去出生年份得到包含年齡的時間

sysdate-numtoyminterval('出生年份','year')

然後將包含年齡的時間中的年齡抽取出來

--直接抽取

extract(year from sysdate-numtoyminterval(to_char(birthday,'yyyy'),'year')) as 年齡

--採用臨時表方式

extract(year from a.time)

select 
sysdate as 當前時間,
birthday as 出生日期,
sysdate-numtoyminterval(to_char(birthday,'yyyy'),'year') as 當前時間與出生日期的年份差,
extract(year from sysdate-numtoyminterval(to_char(birthday,'yyyy'),'year')) as 年齡
from person

或者

select extract(year from a.time) from(
select 
sysdate as 當前時間,
birthday as 出生日期,
sysdate-numtoyminterval(to_char(birthday,'yyyy'),'year') as time
from person
) a

 

發佈了45 篇原創文章 · 獲贊 15 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章