『壹』 sql根據出生年月計算年齡
SQL計算年齡:
SELECT FLOOR(DATEDIFF(CURDATE(), STR_TO_DATE(birthday, '%Y-%m-%d'))/365) AS age FROM table_name;
拓展:MySQL中可以使用TIMESTAMPDIFF函數根據出生日期計算年齡,它接受5個參數:
TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2, [datetime_expr3], [datetime_expr4])
unit參數可以是YEAR,QUARTER,MONTH,WEEK,DAY,HOUR,MINUTE,SECOND中的任何一個,代表了計算結果的單位。
『貳』 SQL語句select查詢學生表的性別,年齡,並將年齡改為出生日期的語句
首先如果只知道年齡,可以得出出生年份,但是沒辦法直接得出准確的出生日期的。
查詢:select sex 性別,age 年齡 from student;
更新:update student s set s.age=2019-s.age
『叄』 SQL 中怎麼根據出生日期算出年齡 然後用年齡查詢
sql是不能查詢的,php可以計算年齡
1、取得當前日期的時間
2、將sql中的出生日期換算成時間
3、當前日期時間-出生日期時間
4、將得到的數值轉換為年月日
『肆』 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)
『伍』 sql根據年齡計算出生年份
selectyear(getdate())-年齡
--例如今年25
selectyear(getdate())-25
--結果為1991
『陸』 怎麼用SQL語句表示年齡表中只有出生日期這個欄位
首先呢根據題目來看實在資料庫實現的時候沒有考慮全面。在設計階段可以只有出生日期,但應該能分析到年齡是經常使用的,必須將年齡設計成派生屬性,在關系的實現時將其作為表的一個列age,並為其設置默認值year(getdate())-year(出生日期),這樣在查詢的時候直接查選age即可。建議修改表結構,一勞永逸。其次,如果不修改表結構,也只能使用sql中的日期函數,比如datediff。在這給出sqlserver中的寫法:
select DATEDIFF(yy, GETDATE(), 出生日期) as 'age' from table_name
還有一種辦法,就是在應用編程中操作,利用腳本語言進行處理。
『柒』 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)