全部。
尝试在Netezza SQL中找到查找当年最后一天的方法。
对于T-SQL,我使用了SELECT DATEADD(MS,-3,DATEADD(YY, DATEDIFF(YY,0,GETDATE() )+1, 0))
,但是在为NZ-SQL制作一个时,我有一个大脑放屁
谢谢!
答案 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 ;;