想知道你是否可以在这里帮助一点语法。尝试将变量设置为月份值,具体取决于它是否超过该月的第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
我知道你不能使用小于或大于标志,因为案例陈述仅用于评估(=)?任何人都可以提出另一种方法吗?
感谢。
答案 0 :(得分:2)
select @your_variable = case when DAY(GETDATE()) = 25
then MONTH(GETDATE())
else MONTH(GETDATE()) - 1
end
答案 1 :(得分:1)
据我了解,您需要这种用法;
select
case
when DAY (GETDATE()) = 25 then MONTH(GETDATE())
else MONTH(GETDATE()) - 1
end
答案 2 :(得分:1)
您可以将>
和<
运算符与CASE一起使用。以下是您的预期吗?
SELECT CASE WHEN DAY(GETDATE()) > 24
THEN MONTH(GETDATE())
ELSE MONTH(GETDATE()) + 1
END AS [a]
答案 3 :(得分:0)
IF
DAY(GETDATE()) <=25
SELECT DATEADD(month,-1,CURRENT_TIMESTAMP)