1. Системная дата
select sysdate from dual;
2. Текущая дата в сессии
select current_date from dual;
3. Какая дата будет завтра или через несколько дней, месяцев
-- завтра
select sysdate + 1 from dual;
-- через 10 дней
select sysdate + 10 from dual;
-- 30 дней назад
select sysdate -30 from dual;
-- через 2 месяца
SELECT add_months(SYSDATE, 2) FROM dual;
-- в ближайший четверг
select NEXT_DAY(TRUNC(SYSDATE), 'THURSDAY') from dual;
4. Последний рабочий день месяца
select last_day(sysdate) -
case trim(to_char(last_day(sysdate), 'DAY', 'NLS_DATE_LANGUAGE=ENGLISH'))
when 'SUNDAY' then 2
when 'SATURDAY' then 1
else 0
end
from dual;
5. Вывести текущую дату со временем 00:00:00
SELECT TO_CHAR(TRUNC(SYSDATE, 'DD'), 'DD-MON-YYYY HH24:MI:SS') "date" FROM dual;
date
--------------------
01-JUL-2010 00:00:00
6. Получить дату завтра и время 2 часа ночи
select trunc(sysdate)+1+2/24 from dual;
7. Какой день недели попадает за заданную дату
SELECT TO_CHAR (TO_DATE ('14.07.2011', 'dd.mm.yyyy'), 'd')
FROM DUAL;
Какой день недели считать первым зависит от параметра NLS_TERRITORY.
8. Какая дата первого дня недели
9. Переформатировать дату с формата dd.mm.yyyy на yyyy/mm/dd
select sysdate from dual;
2. Текущая дата в сессии
select current_date from dual;
3. Какая дата будет завтра или через несколько дней, месяцев
-- завтра
select sysdate + 1 from dual;
-- через 10 дней
select sysdate + 10 from dual;
-- 30 дней назад
select sysdate -30 from dual;
-- через 2 месяца
SELECT add_months(SYSDATE, 2) FROM dual;
-- в ближайший четверг
select NEXT_DAY(TRUNC(SYSDATE), 'THURSDAY') from dual;
4. Последний рабочий день месяца
select last_day(sysdate) -
case trim(to_char(last_day(sysdate), 'DAY', 'NLS_DATE_LANGUAGE=ENGLISH'))
when 'SUNDAY' then 2
when 'SATURDAY' then 1
else 0
end
from dual;
5. Вывести текущую дату со временем 00:00:00
SELECT TO_CHAR(TRUNC(SYSDATE, 'DD'), 'DD-MON-YYYY HH24:MI:SS') "date" FROM dual;
date
--------------------
01-JUL-2010 00:00:00
6. Получить дату завтра и время 2 часа ночи
select trunc(sysdate)+1+2/24 from dual;
7. Какой день недели попадает за заданную дату
SELECT TO_CHAR (TO_DATE ('14.07.2011', 'dd.mm.yyyy'), 'd')
FROM DUAL;
Какой день недели считать первым зависит от параметра NLS_TERRITORY.
8. Какая дата первого дня недели
SELECT TRUNC (TO_DATE ('14.07.2011', 'dd.mm.yyyy'), 'D')
FROM DUAL;
FROM DUAL;
9. Переформатировать дату с формата dd.mm.yyyy на yyyy/mm/dd
SELECT TO_CHAR(TO_DATE('01.06.2012','dd.mm.yyyy'),'yyyy/mm/dd') FROM dual;