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

sql回答年齡

發布時間: 2022-05-07 03:13:34

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,關系資料庫管理系統) 應用軟體。

⑶ 怎麼用SQL語句表示年齡表中只有出生日期這個欄位

首先呢根據題目來看實在資料庫實現的時候沒有考慮全面。在設計階段可以只有出生日期,但應該能分析到年齡是經常使用的,必須將年齡設計成派生屬性,在關系的實現時將其作為表的一個列age,並為其設置默認值year(getdate())-year(出生日期),這樣在查詢的時候直接查選age即可。建議修改表結構,一勞永逸。其次,如果不修改表結構,也只能使用sql中的日期函數,比如datediff。在這給出sqlserver中的寫法:
select DATEDIFF(yy, GETDATE(), 出生日期) as 'age' from table_name
還有一種辦法,就是在應用編程中操作,利用腳本語言進行處理。

⑷ SQL查詢所有男生的姓名、年齡,並按年齡排序

SLECT
『姓名','年齡'
FROM
表名
WHERE
'性別'='男'
ORDER
BY
『年齡';
ORDER
BY
默認的是升序排列
ASC
也可設置為降序排列
DESC
如:
安裝年齡降序排列
SLECT
『姓名','年齡'
FROM
表名
WHERE
'性別'='男'
ORDER
BY
『年齡'
DESC;

⑸ 一個很簡單的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求年齡

你這是oralce吧
--獲取兩時間年份差
select EXTRACT(year FROM to_date('2009-05-01','yyyy-mm-dd')) - EXTRACT(year FROM to_date('2008-04-30','yyyy-mm-dd')) years from al;
如果是sql
那就簡單了

⑺ 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 計算年齡

用getdate()獲得今天的日期,再用datediff算的年數
也可以直接取年份相減啊

⑼ SQL中,如何查詢年齡

日期函數,access與SQL Server是有一點區別的,
如果是access的話,
select * from 你的表名
where year(now())-year(出生日期) between 20 and 25
如果是SQL Server的話,
select * from 你的表名
where year(getdate())-year(出生日期) between 20 and 25
呵呵,希望能有幫助,^_^