在Netezza获得上个月的最后一天

时间:2012-09-28 17:50:27

标签: sql netezza

我想知道上个月的最后日期。

这样的事情:

FunctionName(10.02.2011) Result should be 31.01.2011

oracle中,我们可以使用此question中建议的last_day()函数来完成此操作。是否有类似的功能在Netezza Database中执行相同的操作。

5 个答案:

答案 0 :(得分:4)

Netezza中存在

last_day()(不知道我们在哪个版本)

select extract(day from last_day(to_date('20121001','YYYYMMDD') - interval '1 month' ));
 DATE_PART 
-----------
        30

答案 1 :(得分:0)

我没有Netezza可用,但以下内容可能有效:

select <date> - datepart('day', <date>) - 1

从该日期减去当月的当天,然后再过一天,再回到上个月的最后一天。

你也可以这样做:

select date(current_Date) - datepart('day', current_Date) - 1

当前日期。

答案 2 :(得分:0)

与戈登的答案类似,我在新西兰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

答案 3 :(得分:0)

选择摘录(日期从(选择(last_day(to_char(current_timestamp,'dd / mm / yyyy')))))

答案 4 :(得分:0)

对于Netezza,它将使用add_month()和last_day()函数来获取结果。 以'2013-01-01'为例。

select last_day(add_month('2013-01-01',-1));

结果: 2013-12-31