使用SYSDATE()获取上个月的范围

时间:2013-02-28 16:14:03

标签: sql-server-2008 sysdatetime

我正在尝试使用sysdate()来提取上个月的数据。

2 个答案:

答案 0 :(得分: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的原因:

答案 1 :(得分:1)

您的意思是当前服务器时间减去一个月?试试DATEADD function

dateadd(month, -1, sysdatetime())

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

SELECT foo
FROM bar
WHERE baz BETWEEN dateadd(month, -1, sysdatetime()) AND sysdatetime()