㈠ sql中知道出生日期如何查詢的年齡
sql是不能查詢的,php可以計算年齡
1、取得當前日期的時間戳
2、將sql中的出生日期換算成時間戳
3、當前日期時間戳-出生日期時間戳
4、將得到的數值轉換為年月日
㈡ SQL如何取年月
1、首先大部分都會使用的就是獲取當前日期了,getdate直接用。
㈢ 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 server資料庫里通過出生日期,然後算出他的年齡
SqlServer中通過出生日期計算年齡可用year函數。步驟如下:有student表,數據如下,其中birthday列為生日列。
美國Microsoft公司推出的一種關系型資料庫系統。SQLServer是一個可擴展的、高性能的、為分布式客戶機/伺服器計算所設計的資料庫管理系統,實現了與WindowsNT的有機結合,提供了基於事務的企業級信息管理系統方案。
主要特點是高性能設計,可充分利用WindowsNT的優勢。
系統管理先進,支持Windows圖形化管理工具,支持本地和遠程的系統管理和配置。
強大的事務處理功能,採用各種方法保證數據的完整性。
支持對稱多處理器結構、存儲過程、ODBC,並具有自主的SQL語言。 SQLServer以其內置的數據復制功能、強大的管理工具、與Internet的緊密集成和開放的系統結構為廣大的用戶、開發人員和系統集成商提供了一個出眾的資料庫平台。
㈤ sql 如何取日期中的年月
需要設置函數公式select * from 表名 where Convert(varchar(10),日期欄位,120)='2008-12-15'即可輸出。
如獲取年月日,設置 select CONVERT(varchar(100), GETDATE(), 23)
輸出2017-03-06 ,如需獲取年月
select CONVERT(varchar(7), GETDATE(), 120)
輸出變為2017-03。
拓展資料
1、結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。
2、結構化查詢語言包含6個部分:數據查詢語言(DQL:Data Query Language);數據操作語言(DML:Data Manipulation Language);事務處理語言(TPL);數據控制語言(DCL);數據定義語言(DDL);和指針控制語言(CCL)。
資料來源:SQL 教程-函數設置
㈥ 一個很簡單的SQL題「知道生日怎樣求年齡」
這個功能如果在SQL里做,不是一個很簡單的SQL題了。
不過思路其實很簡單:
上次提供給你的寫法的確是有點問題。請看下面的解釋:
相隔年數:生日與現在對比很容易計算得到,要注意,如果出生日期比現在遲則需要減1,因為你計算的是周歲;
月數:( 生日 + 相隔年數 )與現在對比得到,同樣,如果生日日期比現在遲則需要減1;
日數:( 生日 + 相隔年數 + 月數)與現在對比得到,如果今天不算,那麼減1,如果今天算,那麼不減。
具體就是:
「年」=
select
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end
「月」=
select
case
when datepart( day, 生日) > datepart( day, getdate() ) then
datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate()) -1
else datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate())
end
「日」=
select datediff(day, dateadd( mm, case
when datepart( day, 生日) > datepart( day, getdate() ) then
datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate()) -1
else datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate())
end, dateadd( yy, case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,生日)),getdate())
把年月日連接起來,就是:
select
convert( varchar,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end)
+' 年 '+
convert( varchar,
case
when datepart( day, 生日) > datepart( day, getdate() ) then
datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate()) -1
else datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate())
end
)
+' 月 '+
convert( varchar,
datediff(day, dateadd( mm, case
when datepart( day, 生日) > datepart( day, getdate() ) then
datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate()) -1
else datediff(mm,dateadd( yy,
case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,
生日
),
getdate())
end, dateadd( yy, case
when datepart( dy, 生日) > datepart( dy, getdate() ) then datediff( yy,生日,getdate()) -1
else datediff( yy,生日,getdate())
end,生日)),getdate())
) + ' 日 '
像這種問題,一般不會在SQL中來做的,因為相對來說太復雜了。一般會在前台程序代碼里實現,不過既然你提出這個問題來了,我就研究了幾個小時,算是對新人的支持,呵呵。
㈦ SQL數據表只有年齡怎麼查詢出生年份
SQL數據表只有年齡可以使用資料庫里的日期處理函數,倒推出生年份。年齡指的是,從出生年月到現在經過了多少年。也就是說,從現在往前推年齡的年數,就得到了出生年份。比如,你現在20歲,可以用如下SQL得出出生的年月:SELECT DATEADD(year, -20, GETDATE)。
年齡:
年齡,指一個人從出生時起到計算時止生存的時間長度,通常用年歲來表示。年齡是一種具有生物學基礎的自然標志,一個人出生以後,隨著日月流逝,年齡也隨之增長,這是不可抗拒的自然規律。人在進行自身再生產的同時,也進行著年齡的再生產,它總是由不同年代出生的不同年齡的個人所組成。都與每個人的年齡密切相關。所以,正確計算年齡具有十分重要的意義。