NZ-SQL选择当年的最后一天

时间:2014-11-15 00:13:18

标签: sql netezza

全部。

尝试在Netezza SQL中找到查找当年最后一天的方法。 对于T-SQL,我使用了SELECT DATEADD(MS,-3,DATEADD(YY, DATEDIFF(YY,0,GETDATE() )+1, 0)),但是在为NZ-SQL制作一个时,我有一个大脑放屁

谢谢!

2 个答案:

答案 0 :(得分:2)

以下在Postgres中有效,所以我怀疑它也适用于Netezza:

select current_date - extract(doy from current_date) * interval '1 day' + interval '1 year'

想法是从当前日期减去当前的当日。这将为您提供上一年的最后一天。然后添加一年的间隔。

编辑:

这是相同的想法,但是有不同的实现:

select add_months(current_date - extract(doy from current_date), 12) 

或者,绝望中

select to_date(cast(extract(year from current_date)*100000 + 1231) as varchar(255)), 'YYYYMMDD')

编辑II:

顺便说一句,在SQL Server中,您可以使用以下表达式:

select dateadd(year, 1, cast(datename(year, getdate()) as datetime) - 1)

当您将一个看起来像一年的字符串转换为日期/时间时,您将获得一年中的第一天。

答案 1 :(得分:1)

还有一个,使用date_trunc,只是为了好的措施。

选择date_trunc('年',current_date)+间隔' 1年' - 间隔' 1天&#39 ;;