0

sysdate()前月のデータを取得するために使用しようとしています。

4

2 に答える 2

3
DECLARE @firstOfLastMonth DATE;
SET @firstOfLastMonth = DATEADD(MONTH, DATEDIFF(MONTH, 0, SYSDATETIME())-1, 0);

SELECT ... FROM ...
WHERE dateColumn >= @firstOfLastMonth
AND dateColumn < DATEADD(MONTH, 1, @firstOfLastMonth);

これを使用したくない理由は次のBETWEENとおりです。

于 2013-02-28T16:55:19.297 に答える
1

現在のサーバー時間から 1 か月を引いたということですか? DATEADD 関数を試してください:

dateadd(month, -1, sysdatetime())

列の値が過去 1 か月のレコードを選択する場合は、次のようにします。

SELECT foo
FROM bar
WHERE baz BETWEEN dateadd(month, -1, sysdatetime()) AND sysdatetime()
于 2013-02-28T16:18:38.713 に答える