首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Datediff和DatePart的Case语句

使用Datediff和DatePart的Case语句
EN

Stack Overflow用户
提问于 2013-03-04 16:52:29
回答 3查看 17.2K关注 0票数 0

有人可以帮助一个案例陈述,我需要的是查询显示如下所示。我知道有更简单的方法可以做到这一点,但我只是需要关于Case语句的帮助。

--如果当前月份‘小于’道布月份,则从总年数中取‘1’等于41。--如果当前月份‘大于’道布的月份,则年龄是正确的。--但是,如果当前月份与道布月份“相等”,则我们需要转到“日”级别以获取正确的年龄。

代码语言:javascript
复制
Set @DOB = '01 November 1971'
Set @Today = GETDATE()


SELECT Datediff(Year,@DOB,@Today) AS Years, 
Datepart(Month,@DOB) As DOB_Month, 
Datepart(Day, @DOB) as DOB_Day,
DatePart(Month, @Today) As Current_Month, 
Datepart(Day,@Today) AS Current_Day
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-04 17:21:49

试试这个:

代码语言:javascript
复制
DECLARE @DOB DATE= '01 November 1971'
DECLARE @TODAY DATE = GETDATE()

SELECT CASE 
WHEN DATEPART(MONTH, @TODAY) < DATEPART(MONTH,@DOB) THEN DATEDIFF(YEAR,@DOB,@TODAY) - 1
WHEN DATEPART(MONTH, @TODAY) > DATEPART(MONTH,@DOB) THEN DATEDIFF(YEAR,@DOB,@TODAY)
ELSE
    CASE 
         WHEN DATEPART(DAY, @TODAY) < DATEPART(DAY,@DOB) THEN DATEDIFF(YEAR,@DOB,@TODAY) - 1
         ELSE DATEDIFF(YEAR,@DOB,@TODAY)  
    END       
END
票数 2
EN

Stack Overflow用户

发布于 2013-03-04 17:12:54

您可以尝试这样做:

代码语言:javascript
复制
case 
    when DatePart(Month, @Today)  > Datepart(Month,@DOB) then Datediff(Year,@DOB,@Today) 
    when DatePart(Month, @Today)  < Datepart(Month,@DOB) then (Datediff(Year,@DOB,@Today) - 1)
    when DatePart(Month, @Today)  = Datepart(Month,@DOB) then 
        case 
            when DatePart(Day, @Today)  >= Datepart(Day,@DOB) then (Datediff(Year,@DOB,@Today) )
            when DatePart(Day, @Today)  < Datepart(Day,@DOB) then (Datediff(Year,@DOB,@Today) - 1 )
        end
end as AgeCompleted,
票数 1
EN

Stack Overflow用户

发布于 2013-03-04 21:51:21

代码语言:javascript
复制
declare @DOB date = '19680411'
select datediff(year, @DOB, getdate())- case when month(@DOB)*32 + day(@DOB) > 
month(getdate()) * 32 + day(getdate()) then 1 else 0 end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15197689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档