Julia日期:上个月的最后一天



我在Julia中使用DataFrames,希望过滤一些Date和DateTime列。要做到这一点,我需要在运行数据作业的前一个月的最后一天。

例如,如果今天的日期是Date("2021-07-21"),我希望获得2021-06-30

我一直在Redshift SQL中这样做,看起来像这样:

select last_day(current_date - interval '1 month');
┌────────────┐
│  last_day  │
├────────────┤
│ 2021-06-30 │
└────────────┘

在我记得查看Julia标准库Dates之前,我发现一些网络教程只提到了日期firstdayofmonth()函数:

julia> lastdayofmonth(today() - Month(1))
2021-06-30
# maybe a leap year would cause a problem
julia> lastdayofmonth(Date("20200331","yyyymmdd") - Month(1))
2020-02-29
julia> lastdayofmonth(Date("20200229","yyyymmdd") + Month(1))
2020-03-31

这很好用,我看不出它怎么会失败。然而,一向优秀的Julia文档描述了这方面的专用功能。

# WRONG, works only if prior month is shorter
lastdayofmonth(today()) - Month(1)
lastdayofmonth(Date("20210228", "yyyymmdd")) - Month(1)
2021-01-28

有许多有用的函数,如dayofweek()isleapyear()、CCD_7。看起来一切都井然有序!

编辑:日期算术应位于函数内

更正了以下错误,我减去了找到最后一天后的月份,在postgres中工作,但不是Julia Dates:

PD_5

最新更新