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>で and<演算子を使用できます。以下はあなたが期待したものですか?

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 に答える