【发布时间】:2013-01-22 17:56:47
【问题描述】:
可能重复:
How to calculate age in T-SQL with years, months, and days
calculating age from sysdate and birthdate using SQL Server
在一些年龄计算的过程中。当谈到 SQL 时,我有点新手,但我的任务是挑选出从 31 March 2013 开始会变成 65yrs 的人。到目前为止,我能够根据给定的DOB 计算年龄,但是我在挑选这些人时遇到了问题。我认为这是一个简单的问题,但我很难过,请参阅 sql 语句。有人可以指出我正确的方向吗?
SELECT ip_master.ssn, ip_master.firstname, ip_master.surname, ip_master.status,
CASE WHEN DATEADD(YEAR, DATEDIFF (YEAR, dob, '2013/03/31'), dob) > '2013/03/31'
THEN DATEDIFF(YEAR, dob, '2013/03/31') - 1
ELSE DATEDIFF(YEAR, dob, '2013/03/31')
END AS 'Age'
FROM test_db.dbo.ip_master ip_master
【问题讨论】:
-
单挑?你不想要一个
WHERE子句吗? -
假设问题是指今年 65 岁的人,不迟于 3 月 31 日,
where DateAdd( year, -65, '2013-01-01' ) <= DoB and DoB <= DateAdd( year, -65, '2013-03-31' )应该这样做。
标签: sql sql-server