2

想知道您是否可以对这里的语法有所帮助。尝试将变量设置为月份值,具体取决于它是否超过该月的 25 天。

如果是,那么它使用当前月份(例如,如果日期是 10 月 28 日,变量“月”将为 10,但如果是 10 月 24 日,则为 9)。到目前为止,我有以下内容:

select a
case
    when (SELECT DAY(GETDATE()) >= 25
    then a = (SELECT MONTH(GETDATE()))
    else a = (SELECT MONTH(GETDATE()) - 1)
end

我知道您不能使用小于或大于符号,因为 case 语句仅用于评估 (=)?任何人都可以建议另一种方法吗?

谢谢。

4

4 回答 4

3
select @your_variable = case when DAY(GETDATE()) = 25
                             then MONTH(GETDATE())
                             else MONTH(GETDATE()) - 1
                        end 
于 2013-10-03T08:31:15.110 回答
1

据我了解,您需要这种用法;

select
case
    when DAY (GETDATE()) = 25 then  MONTH(GETDATE())
    else  MONTH(GETDATE()) - 1
end
于 2013-10-03T08:31:37.313 回答
1

您可以将><运算符与CASE一起使用。以下是您所期望的吗?

SELECT CASE WHEN DAY(GETDATE()) > 24
    THEN MONTH(GETDATE())
    ELSE MONTH(GETDATE()) + 1
END AS [a]
于 2013-10-03T08:32:25.370 回答
0
IF
 DAY(GETDATE()) <=25
 SELECT DATEADD(month,-1,CURRENT_TIMESTAMP)
于 2013-10-03T08:43:53.570 回答