Всичко.
Опитвам се да намеря начин да намеря последния ден от текущата година в Netezza SQL. За T-SQL използвах SELECT DATEADD(MS,-3,DATEADD(YY, DATEDIFF(YY,0,GETDATE() )+1, 0))
, но имам проблеми с правенето на такъв за NZ-SQL
Благодаря!
Всичко.
Опитвам се да намеря начин да намеря последния ден от текущата година в Netezza SQL. За T-SQL използвах SELECT DATEADD(MS,-3,DATEADD(YY, DATEDIFF(YY,0,GETDATE() )+1, 0))
, но имам проблеми с правенето на такъв за NZ-SQL
Благодаря!
Следното работи в 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)
Когато прехвърляте низ, който изглежда като година към дата/час, получавате първия ден от годината.
И още един, използвайки date_trunc, просто за добра мярка.
изберете date_trunc('year',current_date) + интервал '1 година' - интервал '1 ден';