一尘不染

如何在postgres中获得月份的最后一天?

sql

如何在postgres中找到月份的最后一天?我有一个以(YYYYMMDD)格式存储为numeric(18)的日期列,我正在尝试使用以下方式使它成为日期

to_date("act_dt",'YYYYMMDD') AS "act date"

然后找到该日期的最后一天:

(select (date_trunc('MONTH',to_date("act_dt",'YYYYMMDD')) + INTERVAL '1 MONTH - 1 day')::date)

但这给了我这个错误:

ERROR: Interval values with month or year parts are not supported
  Detail: 
  -----------------------------------------------
  error:  Interval values with month or year parts are not supported
  code:      8001
  context:   interval months: "1"
  query:     673376
  location:  cg_constmanager.cpp:145
  process:   padbmaster [pid=20937]
  -----------------------------------------------

有什么帮助吗?

Postgres版本:

PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.874


阅读 648

收藏
2021-03-10

共1个答案

一尘不染

只需使用last_day函数:

select last_day(to_date(act_date,'YYYYMMDD'))

PS:现在,我相信您知道为您自己的问题选择正确的标签非常重要!

2021-03-10