gpt4 book ai didi

sql-server - SQL 中的年龄计算器

转载 作者:行者123 更新时间:2023-12-02 03:07:26 25 4
gpt4 key购买 nike

我有以下 SQL 查询,显示正确的结果为“28 年 1 个月 16 天”。

但是,我想要,如果数字大于 1,它会显示为年、月、日(复数)。

例如 - 在上面的结果中,年份大于 1,则显示 28 年。

Declare @DOB datetime,@TempDate datetime,@Year int,@Month int,@Day int
Set @DOB='09/13/1991'
Set @TempDate=@DOB

Select @Year=DateDiff(Year,@TempDate,getdate())-
Case
When (Month(@TempDate)>Month(getdate()) or Month(@TempDate)=Month(getdate()) AND Day(@TempDate)>Day(getdate()))
Then 1
Else 0
End

Select @TempDate=DateAdd(YEAR,@Year,@DOB)
Select @Month=DateDiff(Month,@TempDate,getdate())-
Case
When (Month(@TempDate)>Month(getdate()) OR Day(@TempDate)>Day(getdate()))
Then 1
Else 0
End

Select @TempDate=DateAdd(Month,@Month,@TempDate)

Select @Day=DateDiff(Day,@TempDate,getdate())

Select Cast(@Year as nvarchar(2))+ ' Year, '+Cast(@Month as nvarchar(2))+ ' Month, '+Cast(@Day as nvarchar(2))+' Day old'

最佳答案

例如尝试这个:

SELECT CAST(@Year AS NVARCHAR(2)) + IIF(@Year > 1,' Years, ','Year, ') + CAST(@Month AS NVARCHAR(2)) + IIF(@Month > 1,' Months, ',' Month, ') + CAST(@Day AS NVARCHAR(2)) + IIF(@Day > 1,' Days ',' Day ') + 'old'

关于sql-server - SQL 中的年龄计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58605917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com