繁体   English   中英

SQL计算年龄。在DATE())上使用DatePart减去出生年份

[英]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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM