【发布时间】:2017-03-24 02:03:39
【问题描述】:
这是我所拥有的:
select case when cast(datepart(mm, enrollments.enddate) as varchar)<cast(datepart(mm, getdate()) as varchar)
then 'Expired'
when cast(datepart(m, enrollments.enddate) as varchar)=cast(datepart(m, getdate()) as varchar)
then 'Renewal required by end of this month'
when cast(datepart(m, enrollments.enddate) as varchar)-1=cast(datepart(m, getdate()) as varchar)
then 'Renewal required by end of next month'
when cast(datepart(m, enrollments.enddate) as varchar)>cast(datepart(m, getdate()) as varchar)
then 'Current'
Else null
End) as [Certification Status]
除了第一个逻辑之外,所有逻辑都有效,其中当将 12 月的enrollments.enddate 与 getdate 月 3 进行比较时,结果显示 123 '当前'
使用 SQL Server 2008
【问题讨论】:
-
停止转换为 VARCHAR,改用数值。
标签: sql-server-2008 casting datepart