没有在sybase中使用datepart获取上个月的记录

not getting previous month record using datepart in sybase

使用下面的分离语法获取上个月的记录,它在去年之前工作正常,但是它在 1 月份给出 0 值 month.How 即使年份发生变化,我们能否获得带有日期部分的上个月?

DATEPART(month(GETDATE()) -1

我知道我使用了另一种类型的数据库,但我想给个提示。我正在使用 sql 服务器 2019.

首先,您需要替换日期,然后才从中取出日期部分。

查询:

--dateadd -1 would subtract 1 from current month
--(Jan - 1 2022), would be December 2021
select datepart(month, dateadd(month, -1, getdate()))

--also date add covers internally the problem with 30,31 days.
--May always has 31 days, April 30. So -1 subtraction from 31th of May,would result in 30th of April.
select dateadd(month, -1, cast('2021-05-31 10:00:00' as datetime))