[英]SQL Find Age using DateDiff
Fields || Data
ID || V465
DOB || 1946-09-05
DATE_OF_DEATH || 1974-05-11
我正在使用此SQL,但出现错误。
select DATEDIFF("YYYY",'DOB','DATE_OF_DEATH') where ID= 'V465'
其SQL SERVER Management Studio R2和
错误:消息207,级别16,状态1,第2行无效的列名称'ID'
该错误最有可能来自您的select语句中未包含表
select DATEDIFF(YY,DOB,DATE_OF_DEATH) AS AGE
FROM TABLE_NAME
where ID= 'V465'
SELECT DATEDIFF(YY,'01-01-2001','12-31-2002')
在MSSQL上返回1
测试数据
DECLARE @TABLE TABLE(ID VARCHAR(20),DOB DATE, DATE_OF_DEATH DATE)
INSERT INTO @TABLE VALUES
('V465', '1946-09-05', '1974-05-11'),('V466', '1945-09-05', '2000-11-11'),
('V467', '1982-09-05', NULL),('V468', '1946-09-05', NULL)
询问
SELECT DATEDIFF(YEAR,DOB, COALESCE(DATE_OF_DEATH, GETDATE())) AS AGE
FROM @TABLE
如果有人还没有死亡,请使用COALESCE
函数,您也可以计算他们的年龄。 COALESCE
函数将与死亡日期发生差异,并且如果该列为空,它将与今天的日期发生差异。 并会给您以下结果。
结果
╔═════╗
║ AGE ║
╠═════╣
║ 28 ║
║ 55 ║
║ 32 ║
║ 68 ║
╚═════╝
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.