我想获取SQL中特定日期的上个月日期。例如:6.21.19
的上个月日期为5.21.19
。
我只是想从中获得补偿。
MONTH( curdate() ) -1
我需要返回上个月的日期。
答案 0 :(得分:0)
欢迎来到董事会Arie。从您的问题和答案来看,您需要一系列日期及其前一个月的关系。最简单的方法是查找您需要在表中查找的所有日期,然后到目前为止提供的答案将起作用。由于情况似乎并非如此,我猜您正在动态创建日期范围。
因此,假设您确实需要示例中显示的数据,其中包括两个部分,首先需要获取要查询的日期列表,然后需要获取上个月的日期。有很多方法可以得到连续的几天,但为简单起见,我将使用递归CTE。确定日期范围后,我将只选择日期及其上个月的日期。
with Date_CTE as (select cast('6/1/2019' as datetime) as repDate
union all
select dateadd(day, 1, repdate) as repDate
from Date_CTE
where repDate < '06/07/2019')
select repDate, dateadd(month, -1, repDate) as PriorDate
from Date_CTE
CTE是有用的功能,您可以在here上获得有关它们的更多详细信息,但是值得注意的是,有很多方法可以做到这一点。希望这能使您指向正确的方向。
答案 1 :(得分:0)
SELECT yourDateColumn, yourDateColumn-interval 1 month as prevMonthDate