在 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 中获取上个月的最后一天的主要内容,如果未能解决你的问题,请参考以下文章

js如何获取上个月第一天和最后一天

js中如何获取当年的最后一天

java中如何获取当前月最后一天

Java中获取去年最后一天的日期

如何用sql获取上个月的第一天和上个月的最后一天

sql 语句 怎么获取指定月的第一天和最后一天?