我想在SQL

时间:2019-06-21 20:39:09

标签: mysql sql

我想获取SQL中特定日期的上个月日期。例如:6.21.19的上个月日期为5.21.19

我只是想从中获得补偿。

MONTH( curdate() ) -1

我需要返回上个月的日期。

enter image description here

2 个答案:

答案 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