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

sqlserver計算年齡

發布時間: 2022-04-01 14:50:54

sql計算年齡時顯示SYSDATE無效

從這錯誤信息看,是sysdate欄位不否存在Student表中,差下sysdate欄位是否存在Student表中,欄位拼寫是否正確

② 在sqlserver中寫一個存儲過程 入參為年齡 格式為日期格式(x年x月x天) 求他的出生日期

沒用過sqlserver,不知道具體有什麼差異,這是在pl/sql寫的,要轉換成xx年xx月在前台再轉
要是寫存儲過程,需要操作那些表,沒有描述。
要是返回出生日期,那需要寫個函數,存儲過程沒有返回值。csrq假設是date格式
create or replace function F_GET_CSRQ(v_age in number) return varchar2 is
result varchar2(20);
begin
select to_char(csrq,'yyyy-mm-dd') into result from table t where t.age= v_age;
return(result);
end F_GET_CSRQ;

③ 怎麼向sqlserver插入日期,並計算出年齡

(1)假設你沒有生日這一列alter table add birthday datetime
假設你沒有年齡這一列alter table add age float
(2)給某人加入生日1990-1-1,update table set birthday ='1990-1-1' where ....
計算年齡 update table set age =datediff(year,birthday,getdate()) where ....

以上代碼sqlserver2008

④ 用Oracle/SqlServer 的存儲過程,實現如下功能:當用戶錄入完出生日期之後,自動計算出年齡並存入欄位year

我用的是SQL SERVER 分析問題

你的需求要用存儲過程的話 方法如下:
把你錄入的出生日期作為你的存儲過程參數,當然你的存儲過程還需要一個表示身份的欄位 我假設為ID
create proc ageA (@id int,@birth datetime)
as
begin
update p_info
set year=datediff(year,@Birth,getdate())
where id=@id
end

--但是如果你想全自動完成
就是說 你想往表裡插入你的出生日期欄位值後 表中的year欄位自己算出來的話 有2個方法
1.計算列

CREATE TABLE p_info
(
id INT PRIMARY KEY ,
name VARCHAR(10),
birth DATETIME,
year AS datediff(year,birth,getdate())
)
這么建表就好了

2.觸發器
CREATE TRIGGER trIns ON p_info
AFTER INSERT
AS
BEGIN
UPDATE p_info
SET year=datediff(year,d.birth,getdate())
FROM inserted d
WHERE p_info.id=d.id
end

個人強烈介意使用第一種計算列

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

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

⑥ SQL Server:用SQL語句輸出每個人的信息以及這個人所在城市中該年齡段的人數。

SELECT t1.FNAME, t1.FCITY, t1.FAGE, t1.FSALARY, t2.cnt
FROM T_Person t1,
(SELECT FCITY, count(FNAME) cnt
WHERE FCITY = t1.FCITY
AND FAGE LIKE substring(FAGE, 1, 1) + '%') t2
WHERE t1.FCITY = t2.FCITY

用FAGE LIKE substring(FAGE, 1, 1) + '%') t2來篩選出該年齡段的。SUBSTR可能在sqlserver裡面需要調整下。

⑦ 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資料庫里通過出生日期,然後算出他的年齡

  1. SqlServer中通過出生日期計算年齡可用year函數。步驟如下:有student表,數據如下,其中birthday列為生日列。

  2. 美國Microsoft公司推出的一種關系型資料庫系統。SQLServer是一個可擴展的、高性能的、為分布式客戶機/伺服器計算所設計的資料庫管理系統,實現了與WindowsNT的有機結合,提供了基於事務的企業級信息管理系統方案。

  3. 主要特點是高性能設計,可充分利用WindowsNT的優勢。

  4. 系統管理先進,支持Windows圖形化管理工具,支持本地和遠程的系統管理和配置。

  5. 強大的事務處理功能,採用各種方法保證數據的完整性。

  6. 支持對稱多處理器結構、存儲過程、ODBC,並具有自主的SQL語言。 SQLServer以其內置的數據復制功能、強大的管理工具、與Internet的緊密集成和開放的系統結構為廣大的用戶、開發人員和系統集成商提供了一個出眾的資料庫平台。

⑨ 關於一個sql語句書寫 查詢年齡的

不知道你具體用的什麼資料庫


給你sqlserver的寫法吧


selectA,B
from表
whereDATEDIFF(dd,b,getdate())*1.0/365between10and30

大概就是這樣,我是用天計算的,各個資料庫有差別,,,,

⑩ SQL SERVER 2008 怎麼在輸出年齡後加個 歲 字

SqlServer中通過出生日期計算年齡可用year函數。

工具:SqlServer 2008 R2

步驟:

1、有student表,數據如下,其中birthday列為生日列: