sql server 2008 -使用SYSDATE()获取前一个月范围



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

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的原因:

  • BETWEEN和魔鬼有什么共同之处?

  • 要改掉的坏习惯:错误处理日期/范围查询

您是指当前服务器时间减去一个月?试试DATEADD函数:

dateadd(month, -1, sysdatetime())

如果您想选择某列的值是过去一个月的记录,您可以这样做:

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

相关内容

  • 没有找到相关文章

最新更新