Интервалы времени в Oracle SQL
Статьи про Oracle -> Программирование
Интервалы времени в Oracle SQL
v:1.0 27.07.2014
Петрелевич Сергей
Периодически при написании sql-запросов в Oracle надо из заданного времени, например текущего, вычесть какое-то количество секунд.
Это можно сделать несколькими способами.
Например, так.
sysdate-10*1/24/60/60Из системной даты вычитаются 10 секунд.
Делается этот так: sysdate-1 ----вычитаем 1 день
1/24/60/60 --день переводим в часы, часы в минуты, а минуты в секунды.
Результат умножаем на 10, чтобы получить 10 секунд.
Есть способ красивее
sysdate-INTERVAL '10' SECONDВ этом способе используется системный литерал Oracle: INTERVAL.
И полный пример.
select to_char(sysdate,'dd.mm.yyyy hh24:mi:ss') as now, to_char(sysdate-10*1/24/60/60,'dd.mm.yyyy hh24:mi:ss') as before_1, to_char(sysdate-INTERVAL '10' SECOND,'dd.mm.yyyy hh24:mi:ss') as before_2 from dual
P.S.
Вот еще несколько примеров применения
select to_char(sysdate,'dd.mm.yyyy hh24:mi:ss') as now, to_char(sysdate+INTERVAL '1:2' MINUTE TO SECOND,'dd.mm.yyyy hh24:mi:ss') as addTime, --добавляем часы и минуты to_char(sysdate+INTERVAL '10' MINUTE,'dd.mm.yyyy hh24:mi:ss') as addMinutes,--добавляем минуты to_char(sysdate+INTERVAL '2' HOUR ,'dd.mm.yyyy hh24:mi:ss') as addHour, --добавляем часы to_char(sysdate+INTERVAL '4' DAY,'dd.mm.yyyy hh24:mi:ss') as addDay --добавляем дни from dual
Метки: SQL
Комментарии.
Внимание.
Комментировать могут только зарегистрированные пользователи.
Возможно использование следующих HTML тегов: <a>, <b>, <i>, <br>.
jashka34 | Oct 28, 2014 5:40:51 PM | |
Кстати, а более красивый способ чем получать дату первого дня месяца так вот: select ((last_day(sysdate) + 1) - interval '1' month) from dual есть? :) | ||
Sergey | Oct 28, 2014 8:10:28 PM | |
я бы предложил такой способ: select 1 as first from dual | ||
igorDem | Nov 21, 2014 6:48:37 PM | |
А чем trunc(sysdate,'MM') не устраивает? | ||
Sergey | Nov 22, 2014 3:55:35 PM | |
trunc(sysdate,'MM') - нормальное решение. jashka34 предложил, на мой взгляд, очень остроумный вариант. :) |
||
tyffghhg | Nov 6, 2019 11:15:31 PM | |
Приветствую! А, как получить список сотрудников с HIRE_DATE в интервале день? | ||