SQL 计算年龄 .use DatePart on DATE()) 减去出生年份
SQL Calculate the age .use DatePart on DATE()) minus year of birth
找出所有在 1925 年 1 月 1 日之前出生并且仍然在世的星星的编号、姓名、出生日期和当前年龄。根据当前年份(在 DATE() 上使用 DatePart)减去出生年份计算年龄。
当前查询:
SELECT StarNum, FirstName,LastName,StarBorn,StarDied,Datepart("yyyy",StarBorn- date()) AS age
FROM Star
WHERE StarBorn < #01/01/1925# AND StarDied IS NULL
而不是 Datepart
使用 Datediff
来计算 age
。
我用来计算age
的公式是
DATEDIFF("h",DOB,date())/8766
试试这个。
SELECT StarNum, FirstName,LastName,StarBorn,
StarDied,DATEDIFF("h",StarBorn,date())/8766 AS age
FROM Star
WHERE StarBorn < #01/01/1925# AND StarDied IS NULL
使用它可以更准确地了解一个人的年龄。我相信这是特定于出生日期的。
select case
when cast(getdate() as date) = cast(dateadd(year, (datediff(year, '1996-09-09', getdate())), '1996-09-09') as date)
then dateDiff(yyyy,'1996-09-09',dateadd(year, 0, getdate()))
else dateDiff(yyyy,'1996-09-09',dateadd(year, -1, getdate()))
end as MemberAge
go
找出所有在 1925 年 1 月 1 日之前出生并且仍然在世的星星的编号、姓名、出生日期和当前年龄。根据当前年份(在 DATE() 上使用 DatePart)减去出生年份计算年龄。
当前查询:
SELECT StarNum, FirstName,LastName,StarBorn,StarDied,Datepart("yyyy",StarBorn- date()) AS age
FROM Star
WHERE StarBorn < #01/01/1925# AND StarDied IS NULL
而不是 Datepart
使用 Datediff
来计算 age
。
我用来计算age
的公式是
DATEDIFF("h",DOB,date())/8766
试试这个。
SELECT StarNum, FirstName,LastName,StarBorn,
StarDied,DATEDIFF("h",StarBorn,date())/8766 AS age
FROM Star
WHERE StarBorn < #01/01/1925# AND StarDied IS NULL
使用它可以更准确地了解一个人的年龄。我相信这是特定于出生日期的。
select case
when cast(getdate() as date) = cast(dateadd(year, (datediff(year, '1996-09-09', getdate())), '1996-09-09') as date)
then dateDiff(yyyy,'1996-09-09',dateadd(year, 0, getdate()))
else dateDiff(yyyy,'1996-09-09',dateadd(year, -1, getdate()))
end as MemberAge
go