我正在尝试使用sysdate()
来提取上个月的数据。
答案 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()