Oracle получает текущую дату

Обновлено: 04.07.2024

Возвращает дату в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС. Дата представляет собой локальную текущую дату и время, которые определяются системой, в которой выполняется инструкция.

Если вы используете режим ввода TimesTen, для получения информации о SYSDATE см. документацию по предыдущим выпускам TimesTen.

Функции SYSDATE и GETDATE не имеют параметров.

Системы SYSDATE и GETDATE работают одинаково. SYSDATE совместим с синтаксисом Oracle, а GETDATE совместим с синтаксисом Microsoft SQL Server.

SYSDATE и GETDATE не имеют аргументов и возвращают значение DATE.

Значение SYSDATE или GETDATE извлекается только во время выполнения.

Все требуемые изменения даты (например, для включения другого часового пояса или перехода на летнее время) должны происходить на системном уровне. Дату нельзя изменить с помощью SYSDATE или GETDATE.

Функции SYSDATE и GETDATE возвращают тип данных DATE. Формат ДАТЫ: «ГГГГ-ММ-ДД ЧЧ:ММ:СС».

SYSDATE и GETDATE являются встроенными функциями и могут использоваться везде, где может использоваться выражение даты. Их можно использовать в INSERT. Список проекций SELECT, предложение WHERE или для вставки значений. Их нельзя использовать с агрегатом SUM или AVG (операнды должны быть числовыми) или с агрегатом COUNT (ожидаются имена столбцов).

SYSDATE и GETDATE возвращают одно и то же значение DATE в контексте одного оператора SQL.

Поддерживаются литералы TT_SYSDATE и ORA_SYSDATE. TT_SYSDATE возвращает тип данных TT_TIMESTAMP. ORA_SYSDATE возвращает тип данных DATE.

В этом примере вызов SYSDATE возвращает одну и ту же дату и время для всех строк в таблице:

В этом примере вызывается SYSDATE для вставки текущих данных и времени в столбец datecol :

В этом примере GETDATE вставляет одно и то же значение даты для каждой новой строки в таблице, даже если запрос занимает несколько секунд.

TO_CHAR используется с SYSDATE для возврата даты из двойной таблицы:

В этом примере вызывается TT_SYSDATE для возврата типа данных TT_TIMESTAMP, а затем вызывается ORA_SYSDATE для возврата типа данных DATE:

Oracle SYSDATE — одна из самых популярных функций в Oracle. Узнайте, что он делает, как его ВЫБРАТЬ и ВСТАВИТЬ в этой статье.

Назначение функции Oracle SYSDATE

Oracle SYSDATE

Функция Oracle SYSDATE используется для отображения текущей даты и времени операционной системы, в которой работает база данных.

Это простая и быстрая функция SQL для поиска текущей даты или текущей даты и времени.

Синтаксис

Синтаксис функции SYSDATE прост:

Параметры не указываются — просто введите слово SYSDATE!

Тип возвращаемого значения — DATE. Однако тип данных Oracle DATE фактически включает компонент времени. Об этом часто забывают.

Это означает, что SYSDATE включает не только дату, но и время. Время может отображаться несколькими способами и зависит от параметра NLS_DATE_FORMAT. Дополнительные сведения см. в примерах ниже.

Формат Oracle SYSDATE

Формат, отображаемый SYSDATE, зависит от параметра базы данных NLS_DATE_FORMAT.

По умолчанию отображается так:

Это означает, что две цифры обозначают день, тире, затем сокращенное название месяца, затем еще одно тире, затем две цифры года.

Таким образом, дата 25 сентября 2017 года будет отображаться как 25-SEP-17.

Это можно изменить несколькими способами:

  • Обновление параметра NLS_DATE_FORMAT в вашей базе данных или в вашем сеансе
  • Использование функции для изменения способа отображения SYSDATE (TO_CHAR)

Что показывает SYSDATE – 1?

Вы можете выполнять арифметические действия со значениями DATE, и SYSDATE ничем не отличается.

Если вы вычтете 1 из SYSDATE, используя такой запрос:

Вы получите дату, которая на один день раньше текущей даты.

Таким образом, любое сложение или вычитание значений DATE интерпретируется как целые дни.

Как вставить SYSDATE в Oracle?

Чтобы вставить значение SYSDATE в Oracle, вы можете просто вставить функцию SYSDATE в столбец DATE.

Это идеальный метод, поскольку и столбец SYSDATE, и столбец DATE относятся к типу данных даты. Нет необходимости конвертировать при вставке в таблицу.

Инструкция INSERT будет выглядеть следующим образом:

Если вы хотите увидеть SYSDATE в другом формате, это нужно сделать при ВЫБОРЕ.

Примеры функции SYSDATE

Давайте рассмотрим несколько примеров функции SYSDATE.

Пример 1. Базовая SYSDATE

В этом примере показано основное использование функции SYSDATE.

SYSDATE
01-OCT-17

Это показывает текущую дату в соответствии с операционной системой базы данных (это мой компьютер).

Пример 2 — SYSDATE — 1 и SYSDATE + 1

В этом примере показано, что происходит, когда мы добавляем и вычитаем 1 из SYSDATE.

SYSDATE MINUS1 PLUS1
01-OCT-17 30-SEP-17 02-OCT-17

Он показывает значение сегодня, вчера и завтра.

Пример 3. Прошедшее время

Мы можем расширить предыдущий пример, чтобы показать прошедшее время или разницу между двумя датами.

< td>SECS_DIFF
SYSDATE DAYS_DIFF HRS_DIFF MINS_DIFF
01-OCT-17 273.3911343 6561.387222 393683.2333 23620994

Этот запрос показывает текущую дату и разницу между текущей датой и 1 января 2017 года в днях, часах, минутах и ​​секундах.

Мы умножили разницу в днях на 24, чтобы преобразовать в часы, затем на 60, чтобы преобразовать в минуты, а затем снова на 60, чтобы преобразовать в секунды.

Пример 4. Форматирование SYSDATE с помощью TO_CHAR

В этом примере показано, как мы можем отформатировать выходные данные SYSDATE, чтобы также показать компонент времени.

Он показывает текущую дату и время.

Пример 5. Изменение NLS_DATE_FORMAT

Еще один способ изменить формат SYSDATE — изменить параметр NLS_DATE_FORMAT.

Сначала посмотрим, как отображается SYSDATE.

NOW_DATE_TIME
01-OCT-17

Мы видим, что отображается только дата, а не время.

Мы можем просмотреть параметр, отвечающий за это форматирование, NLS_DATE_FORMAT, используя этот запрос:

SYSDATE
01-OCT-17

Как объяснялось ранее, используется формат DD-MON-RR.

Давайте изменим это, включив компонент времени. Вместо обновления этой таблицы мы запускаем команду для изменения сеанса. Мы просто изменим его для нашего сеанса, а не для всей базы данных.

Теперь параметр изменился, чтобы отображать дату таким же образом, но отображать время в 24-часовом формате.

Давайте еще раз проверим эту таблицу параметров.

VALUE
DD-MON-RR
< /tr>
VALUE
DD-MON-RR HH24:MI:SS

Формат был обновлен до значения, которое мы установили.

Теперь давайте снова запустим наш запрос SYSDATE.

< /tr>
SYSDATE
01-OCT-17 09:16:54

Мы видим, что там указана та же дата, но теперь есть время.

Это связано с тем, что мы изменили формат даты с помощью команды ALTER SESSION.

Пример 6. Вставка SYSDATE

Чтобы вставить SYSDATE в таблицу, нам просто нужно убедиться, что столбец относится к типу данных DATE.

< /tr>
SYSDATE
01-OCT-17 09:27:07

Вы видите, что значение даты было успешно вставлено в таблицу.

Похожие функции

  • CURRENT_DATE: показывает дату и время в часовом поясе сеанса.
  • SYSTIMESTAMP: показывает дату и время базы данных и возвращает TIMESTAMP WITH TIME ZONE.
  • CURRENT_TIMESTAMP: показывает дату и время сеанса и возвращает TIMESTAMP WITH TIME ZONE.
  • LOCALTIMESTAMP: показывает дату и время сеанса и возвращает TIMESTAMP.

Дополнительную информацию об этих функциях можно найти в моем руководстве по функциям даты Oracle.

Если вы хотите узнать больше о функциях SQL, вы можете найти полный список функций Oracle SQL здесь.

Наконец, если вам понравилась информация и советы по карьере, которые я предоставляю, подпишитесь на мою рассылку ниже, чтобы быть в курсе моих статей. Вы также получите фантастический бонус. Спасибо!

Оставить комментарий Отменить ответ

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.

Даты и время Oracle

Oracle поддерживает как дату, так и время, хотя и отличается от стандарта SQL2. Вместо того, чтобы использовать две отдельные сущности, дату и время, Oracle использует только одну, DATE. Тип DATE хранится в специальном внутреннем формате, который включает не только месяц, день и год, но также
час, минуту и ​​секунду.

Тип DATE используется так же, как и другие встроенные типы, такие как INT . Например, следующая инструкция SQL создает отношение с атрибутом типа DATE :

Формат ДАТЫ

Когда отображается значение DATE, Oracle должен сначала преобразовать это значение из специального внутреннего формата в печатную строку. Преобразование выполняется функцией TO_CHAR в соответствии с форматом DATE. Формат Oracle по умолчанию для DATE — "DD-MON-YY". Таким образом, при выполнении запроса вы увидите что-то вроде: Всякий раз, когда отображается значение DATE, Oracle автоматически вызывает TO_CHAR с форматом DATE по умолчанию. Однако вы можете переопределить поведение по умолчанию, явно вызвав TO_CHAR с вашим собственным форматом DATE. Например, возвращает результат: Общее использование TO_CHAR: где строка может быть сформирована из более чем 40 вариантов. Вот некоторые из наиболее популярных:
< /TR> .
MM Числовой месяц (например, 07 )
MON Сокращенное название месяца (например, JUL)
MONTH Полное название месяца (например, , ИЮЛЬ )
ДД День месяца (например, 24 )
DY Сокращенное название дня (например, FRI)
ГГГГ 4-значный год (например, 1998)
ГГ Последние 2 цифры года (например, 98)
RR То же, что и YY , но две цифры «округлены» до года в диапазоне от 1950 до 2049. Таким образом, например, 06 считается 2006 вместо 1906
AM (или PM ) Индикатор меридиана
ЧЧ Час дня ( 1–12 )
HH24 Час дня ( 0 - 23 )
MI Минута ( 0 - 59 )
SS Секунда ( 0 - 59 )

Вы только что узнали, как вывести значение DATE с помощью TO_CHAR . А как насчет ввода значения DATE? Это делается с помощью функции TO_DATE, которая преобразует строку в значение DATE, опять же в соответствии с форматом DATE. Обычно вам не нужно явно вызывать TO_DATE: всякий раз, когда Oracle ожидает значение DATE, он автоматически преобразует вашу входную строку, используя TO_DATE, в соответствии с форматом DATE по умолчанию "DD-MON-YY". Например, чтобы вставить кортеж с атрибутом DATE, вы можете просто ввести: В качестве альтернативы вы можете использовать TO_DATE явно: Общее использование TO_DATE: где строка имеет те же параметры, что и в TO_CHAR .

Наконец, вы можете изменить формат DATE по умолчанию в Oracle с "DD-MON-YY" на любой другой, выполнив в sqlplus следующую команду: Изменение действительно только для текущего сеанса sqlplus.

Текущее время

<УЛ>
  • Вы можете использовать двойные кавычки, чтобы сделать имена чувствительными к регистру (по умолчанию SQL нечувствителен к регистру) или ввести пробелы в именах. Oracle будет рассматривать все, что заключено в двойные кавычки, буквально как одно имя. В этом примере, если «Текущее время» не заключено в кавычки, оно будет интерпретировано как два нечувствительных к регистру имени CURRENT и TIME , что на самом деле вызовет синтаксическую ошибку.
  • DUAL — это встроенное отношение в Oracle, которое служит фиктивным отношением для включения в предложение FROM, когда ничего другого не подходит. Например, попробуйте " выбрать 1+2 из двойного; ".
  • Операции DATE

    Вы можете вычесть два значения DATE, и результатом будет число с плавающей запятой, которое представляет собой количество дней между двумя значениями DATE. Как правило, результат может содержать дробь, потому что DATE также имеет компонент времени. По очевидным причинам нельзя складывать, умножать и делить два значения DATE.

    Вы можете добавлять и вычитать константы из значения DATE, и эти числа будут интерпретироваться как количество дней. Например, SYSDATE+1 будет завтра. Вы не можете умножать или делить значения DATE.

    С помощью TO_CHAR строковые операции также можно использовать со значениями DATE. Например, to_char( , 'DD-MON-YY') как '%JUN%' оценивается как true, если это июнь. Первоначально этот документ был написан Кристианом Виджаей для класса CS145 профессора Джеффа Ульмана осенью 1997 года; отредактировано Джуном Яном для класса CS145 профессора Дженнифер Видом весной 1998 г .; дальнейшие изменения профессором Ульманом осенью 1998 г.

     Функции даты Oracle

    Функции даты в Oracle можно определить как набор функций, которые работают с датой и позволяют разработчику или пользователям получать текущую дату и время в определенном часовом поясе или извлекать только дату/месяц/год или выполнять более сложные действия. например, извлечение последнего дня месяца/следующего дня/часового пояса сеанса, а также состоит из функций, которые можно использовать для преобразования значения даты в строку символов или преобразования даты, которая находится в строке символов, в значение даты.

    Функции даты Oracle с примерами

    Ниже приведены различные функции даты оракула с примерами:

    Hadoop, наука о данных, статистика и др.

    1. ТЕКУЩАЯ_ДАТА

    Эта функция используется для получения текущей даты в часовом поясе сеанса. Она не требует параметров и является очень простой функцией.

    Синтаксис:

    Пример:

    В этом примере мы попытаемся найти текущую дату сеанса с помощью этой функции.

    Код:

    ВЫБЕРИТЕ CURRENT_DATE ИЗ ДВОЙНОЙ;

    В выводе мы увидим текущую дату часового пояса сеанса.

    2. СИСТЕМНАЯ ДАТА

    Эта функция возвращает текущую дату и время операционной системы, в которой установлена ​​база данных Oracle.

    Обучение Oracle (14 курсов, 8+ проектов) 14 онлайн-курсов | 8 практических проектов | 120+ часов | Поддающийся проверке сертификат об окончании | Пожизненный доступ
    4,5 (8 460 оценок)

    Синтаксис:

    Пример:

    В этом примере мы найдем системную дату операционной системы, в которой установлена ​​текущая база данных.

    Код:

    выбрать sysdate из двойного;

    Вывод:

     функция даты оракула 1

    Как мы видим, на снимке экрана показана системная дата.

    3. ВЫДЕРЖКА

    Эта функция извлечения в Oracle используется для извлечения определенного компонента, который может быть годом, днем, месяцем, часом, минутой, секундой, из значения даты.

    Синтаксис:

    ИЗВЛЕЧЕНИЕ (компонент из исходного кода)

    Параметры:

    • component: относится к компоненту, который мы хотим извлечь (год, день, месяц, час, минута, секунда).
    • источник: относится к значению (DATE, TIMESTAMP), из которого мы хотим извлечь данные.

    Пример:

    В этом примере мы собираемся извлечь год из даты.

    Код:

    ВЫБЕРИТЕ
    ИЗВЛЕКАТЬ( ГОД ОТ ДО_ДАТЫ( '29-Apr-2020 05:30:20 ', 'ДД-Пн-ГГГГ ЧЧ24:МИ:СС' )) ) ГОД
    ОТ
    ДВОЙНОЙ;

    Мы использовали функцию to_date.

    Вывод:

     функция даты оракула 2

    На приведенном выше снимке экрана видно, что год извлечен успешно.

    4. TO_DATE

    Эта функция преобразует дату в виде строки в значение даты. Он принимает три аргумента.

    Синтаксис:

    TO_DATE(строка, формат, nls_language)

    Параметры:

    • строка: относится к дате в виде строки, которую мы хотим преобразовать.
    • format: относится к формату даты и времени, в который мы хотим преобразовать, и является необязательным параметром.
    • nls_language: относится к языку названий дня и месяца. Это также необязательный параметр.

    Пример:

    В этом примере мы преобразуем дату в строке в значение даты.

    Код:

    ВЫБЕРИТЕ
    TO_DATE( '20 АПРЕЛЯ 2020 ГОДА', 'ДД МЕС ГГГГ' )CONVERTED_DATE
    FROM dual;

    Вывод:

     функция даты оракула 3

    Как мы видим на снимке экрана, значение DATE было преобразовано в определенный формат.

    5. TO_CHAR

    Он используется для преобразования даты из значения DATE в указанный формат даты.

    Синтаксис:

    Параметры:

    • выражение: относится к значению ДАТА или ИНТЕРВАЛ, которое необходимо преобразовать. Выражение может иметь тип DATE OR TIMESTAMP
    • date_format: относится к указанному формату, в который мы собираемся преобразовать выражение. Это необязательный параметр.

    Пример:

    В этом примере мы собираемся преобразовать системную дату или текущую дату в строковое значение в формате ДД-ММ-ГГГГ.

    Код:

    ВЫБЕРИТЕ
    TO_CHAR( sysdate, 'DD-MM-YYYY' )NEW_DATE
    FROM
    двойной;

    Вывод:

     TO_CHAR

    Как видно на снимке экрана, системная дата была преобразована в указанный формат.

    6. ПОСЛЕДНИЙ_ДЕНЬ

    Эта функция используется для возврата последнего дня месяца определенной даты. Он принимает аргумент DATE в качестве параметра.

    Синтаксис:

    Параметр:

    • дата: относится к значению даты, для которого мы хотим получить последний день месяца.

    Пример:

    В этом примере мы собираемся извлечь последний день месяца из sysdate.

    Код:

    ВЫБРАТЬ
    LAST_DAY(sysdate) LAST_DAY
    ИЗ
    двойного;

    Вывод:

     функция даты оракула 5

    Как видно на снимке экрана, запрос отображает последний день апреля.

    7. MONTHS_BETWEEN

    Эта функция используется для измерения количества месяцев между двумя датами.

    В качестве аргументов принимает два параметра.

    Синтаксис:

    Параметры:

    • from_date: относится к дате, из которой вычитается.
    • to_date: относится к дате, которую нужно вычесть.

    Пример:

    В этом примере мы рассчитаем количество месяцев между системной датой и датой, когда Индия выиграла свой второй чемпионат мира по крикету, который состоялся 2 апреля 2011 года.

    Код:

    ВЫБЕРИТЕ
    МЕСЯЦЫ_BETWEEN( sysdate, DATE '2011-04-02' ) MONTH_DIFFERENCE
    ОТ
    DUAL;

    Вывод:

     MONTHS_BETWEEN

    Как видно на снимке экрана, запрос отображает количество месяцев между двумя датами.

    8. ДОБАВИТЬ_МЕСЯЦЕВ

    Эта функция добавляет N месяцев к дате и возвращает тот же день через N месяцев.

    Синтаксис:

    Параметры:

    • выражение: относится к значению даты.
    • N: представляет количество месяцев.

    Пример:

    Чтобы получить текущую дату системного дня через 2 месяца с помощью функции ADD_MONTHS.

    Код:

    ВЫБЕРИТЕ
    ADD_MONTHS( sysdate, 2 ) NEWDATE
    ОТ
    двойного;

    Вывод:

     ADD_MONTHS

    9. CURRENT_TIMESTAMP

    Эта функция возвращает текущую дату и время в часовом поясе сеанса.

    Синтаксис:

    Пример:

    Давайте попробуем получить текущую отметку времени для этого часового пояса сеанса.

    Код:

    ВЫБЕРИТЕ
    CURRENT_TIMESTAMP
    ИЗ
    двойного;

    Вывод:

     CURRENT_TIMESTAMP

    10. DBTIMEZONE

    Это часовой пояс базы данных.

    Синтаксис:

    Пример:

    Чтобы получить текущий часовой пояс базы данных.

    Код:

    ВЫБЕРИТЕ
    DBTIMEZONE
    ИЗ
    двойного;

    Вывод:

     DBTIMEZONE

    11. FROM_TZ

    Эта функция преобразует TIMESTAMP в TIMESTAMP со значением TIME ZONE.

    Синтаксис:

    Параметры:

    • отметка времени: относится к значению отметки времени.
    • часовой пояс: это строка символов TZH:TZM.

    Пример:

    Чтобы преобразовать метку времени в метку времени со значением часового пояса.

    Код:

    ВЫБЕРИТЕ
    FROM_TZ(TIMESTAMP '2020-05-01 19:35:10', '-07:00')NEWVALUE
    FROM
    DUAL;

    Вывод:

     функция даты оракула 10

    12. NEW_TIME()

    Эта функция преобразует дату из одного часового пояса в другой часовой пояс.

    Синтаксис:

    NEW_TIME(дата, from_timezone, new_timezone)

    Параметры:

    • дата: относится к дате, которую мы хотим преобразовать.
    • from_timezone: относится к часовому поясу даты.
    • new_timezone: относится к часовому поясу, в который мы хотим преобразовать.

    Код:

    ВЫБЕРИТЕ
    NEW_TIME( sysdate, 'PST', 'AST' ) TIME_IN_AST
    ИЗ
    DUAL;

    Вывод:

     функция даты оракула 11

    13. КРУГЛЫЙ

    Эта функция округляет дату до определенного формата.

    Синтаксис:

    Параметры:

    • дата: представляет дату, которую мы хотим округлить.
    • format: представляет формат, до которого мы хотим округлить.

    Пример:

    В этом примере мы округлим текущую дату 01 мая 2020 20:27:15 до ближайшей даты.

    Код:

    SELECT
    TO_CHAR(
    ROUND( TO_DATE( '01-May-2020 20:27:15', 'DD-Mon-YYYY HH24:MI:SS' ) ),
    'ДД-Пн-ГГГГ ЧЧ24:МИ:СС' ) rounded_date
    FROM
    двойной;

    Вывод:

     функция даты оракула 12

    14. SESSIONTIMEZONE

    Эта функция, как следует из названия, возвращает часовой пояс текущего рабочего сеанса.

    Синтаксис:

    Пример:

    Чтобы получить часовой пояс текущего рабочего сеанса.

    Код:

    ВЫБЕРИТЕ
    SESSIONTIMEZONE
    ИЗ
    двойного;

    Вывод:

     функция даты оракула 13

    15. SYSTIMESTAMP

    Эта функция представляет временную метку с часовым поясом. Он отображает результат с точностью до долей секунды.

    Синтаксис:

    Пример:

    В этом примере мы попытаемся получить отметку времени системы.

    Код:

    ВЫБЕРИТЕ
    SYSTIMESTAMP
    ИЗ
    двойного;

    Вывод:

     функция даты оракула 14

    16. ТРАНК

    Эта функция возвращает значение даты, усеченное до определенного формата/единицы измерения.

    Синтаксис:

    Параметры:

    • дата: представляет значение даты, которое должно быть усечено.
    • формат: относится к единице измерения, до которой будет усечено значение даты.

    Пример:

    Чтобы получить первый день текущего месяца.

    Код:

    ВЫБЕРИТЕ
    TRUNC(SYSDATE, 'MM' ) МЕСЯЦ
    ИЗ
    двойного;

    Вывод:

     функция даты оракула 15JPG

    17. TZ_OFFSET

    Эта функция возвращает смещение имени часового пояса от UTC.

    Синтаксис:

    Параметр:

    • значение: относится к допустимому часовому поясу.

    Пример:

    Мы получим смещение часового пояса «Азия/Калькутта».

    Код:

    ВЫБЕРИТЕ
    TZ_OFFSET('Азия/Калькутта') OFFSET
    ОТ
    DUAL;

    Вывод:

     TZ_OFFSET

    Заключение

    В этой статье мы узнали об определении функций даты Oracle, а также о различных типах функций даты, доступных в базе данных Oracle. Мы видели различные типы функций даты, их определения, синтаксис, а также примеры для каждого, чтобы лучше понять функции по отдельности.

    Рекомендуемые статьи

    Это руководство по функциям даты Oracle. Здесь мы обсуждаем введение в Oracle Date Functions с 17 функциями и примерами для лучшего понимания. Вы также можете ознакомиться со следующими статьями, чтобы узнать больше –

    Читайте также: