select floor(months_between(to_date(concat(extract(year from sysdate),'-10-31'),'YYYY-MM-DD'),to_date(生日的日期,'yyyy-mm-dd'))/12) from table_name
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供荊州網站建設、荊州做網站、荊州網站設計、荊州網站制作等企業(yè)網站建設、網頁設計與制作、荊州企業(yè)網站模板建站服務,10多年荊州做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
floor 向下取整
months_between 日期相差的月份數
concat字字符串連接
extract(year from sysdate) 返回當前日期的年份
可用to_char函數將date類型轉成字符類型。
如emp表中有如下數據:
如果計算生日的方法是當前日期的年份減去生日的年份,可用如下語句:
select?ename,hiredate,to_char(sysdate,'yyyy')-to_char(hiredate,'yyyy')?from?emp;
查詢結果:
根據出生日期查詢年齡用的還挺多的。
簡單分析一下,加入一個孩子五歲半了,那習慣認為他還是5歲。
用Oracle提供的months_between()函數,先獲取出生日期和當前日期的月數,然后除以12向下取整:
使用的時候,將時間段替換成出生日期對應的字段即可。
如果,計算年齡用的次數非常多,最好寫成自定義函數。