在 Netezza 中获取上个月的最后一天
Posted
技术标签:
【中文标题】在 Netezza 中获取上个月的最后一天【英文标题】:Getting Last Day of Previous Month in Netezza 【发布时间】:2012-09-28 17:50:26 【问题描述】:我想获取上个月的最后日期。
类似这样的:
FunctionName(10.02.2011) Result should be 31.01.2011
在oracle
中,我们可以按照问题question 中的建议使用last_day()
函数来实现。 Netezza Database
中是否有类似的功能。
【问题讨论】:
Netezza 基于 Postgres,因此这可能会对您有所帮助。 . . ***.com/questions/8944721/…. 试过但没用。 :( 【参考方案1】:last_day()
存在于 Netezza(不确定我们使用的是哪个版本)
select extract(day from last_day(to_date('20121001','YYYYMMDD') - interval '1 month' ));
DATE_PART
-----------
30
【讨论】:
【参考方案2】:我没有可用的 Netezza,但以下方法可能有用:
select <date> - datepart('day', <date>) - 1
这会从日期中减去当月的当前日期,然后再减去一天以返回上个月的最后一天。
您也可以这样做:
select date(current_Date) - datepart('day', current_Date) - 1
当前日期。
【讨论】:
【参考方案3】:与 Gordon 的回答类似,我在 NZ 6 上对此进行了测试,它可以通过从当前日期减去当前日期 # 来获得上个月的最后一天。您可以将current_timestamp
替换为您的日期字段。
select current_timestamp, current_timestamp - extract(day from current_timestamp)
结果:
2012-10-05 13:35:05 2012-09-30 00:00:00
【讨论】:
【参考方案4】:select extract(day from (select (last_day(to_char(current_timestamp,'dd/mm/yyyy')))))
【讨论】:
一点上下文会让这个答案更好。【参考方案5】:对于 Netezza,它将使用 add_month() 和 last_day() 函数来获取结果。 以“2013-01-01”为例。
select last_day(add_month('2013-01-01',-1));
结果: 2013-12-31
【讨论】:
以上是关于在 Netezza 中获取上个月的最后一天的主要内容,如果未能解决你的问题,请参考以下文章