當前位置:首頁 » 編程語言 » oraclesql計算年齡
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oraclesql計算年齡

發布時間: 2022-10-04 07:54:28

sql語句如何根據出生日期計算年齡

第一種:
一張人員信息表裡有一人生日(Birthday)列,跟據這個列,算出該人員的年齡
datediff(year,birthday,getdate())
例:birthday
=
'2003-3-8'
getDate()=
'2008-7-7'
結果為:5
這樣結果是會返回該人員的大概年齡,但不精確.不會精確到月或日.
按照上面測試的日期,該人員的實際年齡應該還不滿5歲。在需要精確年齡的時候,就會有錯.
第二種:
FLOOR(datediff(DY,birthday,getdate())/365.25)
FLOOR函數:
FLOOR(expr)
返回小於或等於expr的最大整數.FLOOR(1.1)返回1,FLOOR(-1.1)返回-2,FLOOR(1)返回1
這樣就可以精確算出,該人員當前實際年齡了.
測試:
birthday
=
'2000-7-8'
getdate()=
'2007-7-7'
算出結果為:6
在Oracle中,要獲得日期中的年份,例如把sysdate中的年份取出來。
一種常用的方法是:to_number(to_char(sysdate,'yyyy'))
還有一種更好的方法,那就是使用oracle提供的Extract函數,使用方法是:
extract(year
from
sysdate)
,此方法獲得的結果是數值型的
,這種方法省掉了類型轉換,更加簡潔。
相應的,要取得月份或日,可以用extract
(month
from
sysdate)
和extract
(day
from
sysdate)

⑵ oracle 年齡段統計

年齡段統計可用case when 語句。

如test表中有以下數據:

⑶ oracle根據出生日期算年齡

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

floor 向下取整
months_between 日期相差的月份數
concat字字元串連接
extract(year from sysdate) 返回當前日期的年份

⑷ SQL語句如何根據出生日期計算年齡

第一種:
一張人員信息表裡有一人生日(Birthday)列,跟據這個列,算出該人員的年齡
datediff(year,birthday,getdate())
例:birthday = '2003-3-8'
getDate()= '2008-7-7'
結果為:5
這樣結果是會返回該人員的大概年齡,但不精確.不會精確到月或日.
按照上面測試的日期,該人員的實際年齡應該還不滿5歲。在需要精確年齡的時候,就會有錯.
第二種:
FLOOR(datediff(DY,birthday,getdate())/365.25)
FLOOR函數:
FLOOR(expr) 返回小於或等於expr的最大整數.FLOOR(1.1)返回1,FLOOR(-1.1)返回-2,FLOOR(1)返回1
這樣就可以精確算出,該人員當前實際年齡了.
測試:
birthday = '2000-7-8'
getdate()= '2007-7-7'
算出結果為:6

在Oracle中,要獲得日期中的年份,例如把sysdate中的年份取出來。
一種常用的方法是:to_number(to_char(sysdate,'yyyy'))
還有一種更好的方法,那就是使用oracle提供的Extract函數,使用方法是:
extract(year from sysdate) ,此方法獲得的結果是數值型的 ,這種方法省掉了類型轉換,更加簡潔。
相應的,要取得月份或日,可以用extract (month from sysdate) 和extract (day from sysdate)

⑸ oracle.根據生日欄位計算查詢出人員表每個人的年齡

這個辦法很多,如果是比較精確的可以用month_between函數,然後除以12,最後在trunc這樣就能得到具體的年齡了。

比如trunc(month_between(sysdate,時間類型的生日欄位)/12)
個人感覺這個精確一些,能精確到天,只要還沒過生日,那麼就不會加一歲。
當然二者直接相減trunc((sysdate-時間類型的生日欄位)/365)也可以。
sysdate-時間類型的生日欄位,這么相減默認出現的是相差的天數,所以除以365。這個也可以,不過有些年是366天,不過因為366天的年分比較少,所以基本上不會相差很多。只是會出現,「提前」的情況。不過80年最多才21天(大概是這樣,我沒細算,就算四年一次),所以對實際影響不是特別大。如果要求准確那麼還是上面的靠譜一些。
用函數取出欄位年,然後用現在的年相減也可以。這個就是一個大概(個人認為更加不靠譜),比如一個人2050年12月30日出生,現在是2055年後的1月1號,那麼按照年來說就是5,但是其實才4歲多一點,所以年這個只是一個大概的,不會十分准確。

⑹ Oracle 根據出生日期計算年齡

可用to_char函數將date類型轉成字元類型。

如emp表中有如下數據:

⑺ Oracle中如何計算年齡

SQL語句如下:

selectfloor(MONTHS_BETWEEN(sysdate,date'2016-1-1')/12)asagefromal;

結果:

⑻ sql計算年齡

當然報錯了
因為你沒有制定查詢條件,
現在寫的語句select查詢出Sales.Decile表中所有記錄,而你的update是等於(意思更新一條記錄),所以報錯了,應該指定where條件

⑼ 如何用SQL語句把出生日期計算年齡,比如是1984-2-16怎麼算出年齡啊

語句為:SELECT FLOOR(DATEDIFF(CURRENT_DATE,'1984-2-16')/356)

常用sql對資料庫操作:

  1. 連接資料庫命令:mysql -u root -p密碼

  2. 創建資料庫:create database dbname;

  3. 查看所有的資料庫:show databases;

  4. 刪除資料庫:drop database dbname;

  5. 切換資料庫:use dbname;


知識拓展:

MySQL是一個關系型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於Oracle旗下產品。MySQL 是最流行的關系型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系資料庫管理系統) 應用軟體。