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

你的意思是当前服务器时间减去一个月?尝试DATEADD 功能

dateadd(month, -1, sysdatetime())

如果要选择列值在过去一个月内的记录,可以执行以下操作:

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