Даты в oracle — получить первый/последний день
6 Ноябрь 2012
1 комментарий
with t as (select trunc(sysdate) d from dual) -- select 'ГОД - первый день' descr,trunc(d,'YY') new_date from t union all select 'ГОД - последний день', add_months(trunc(d,'YY'),12)-1 from t union all select 'КВАРТАЛ - первый день', trunc(d,'Q') from t union all select 'КВАРТАЛ - последний день', trunc(add_months(d, 3), 'Q')-1 from t union all select 'МЕСЯЦ - первый день' ,trunc(d,'MM') from t union all -- LAST_DAY не изменяет время select 'МЕСЯЦ - последний день',last_day(d) from t union all -- какой день недели считается первым, зависит от параметра NLS_TERRITORY select 'НЕДЕЛЯ - первый день', trunc(d,'D') from t union all select 'НЕДЕЛЯ - последний день', trunc(d,'D')+6 from t DESCR NEW_DATE ------------------------ ----------- ГОД - первый день 01.01.2012 ГОД - последний день 31.12.2012 КВАРТАЛ - первый день 01.10.2012 КВАРТАЛ - последний день 31.12.2012 МЕСЯЦ - первый день 01.11.2012 МЕСЯЦ - последний день 30.11.2012 НЕДЕЛЯ - первый день 05.11.2012 НЕДЕЛЯ - последний день 11.11.2012 8 rows selected
SQL> select (sysdate-trunc(sysdate-1)) day to second + time '00:00:00' as diff_time from dual; DIFF_TIME --------- 15:32:2
Последние комментарии