Oracle получает текущую дату
Обновлено: 21.11.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 используется для отображения текущей даты и времени операционной системы, в которой работает база данных.
Это простая и быстрая функция 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. Прошедшее время
Мы можем расширить предыдущий пример, чтобы показать прошедшее время или разницу между двумя датами.
SYSDATE | DAYS_DIFF | HRS_DIFF | MINS_DIFF | < td>SECS_DIFF|
01-OCT-17 | 273.3911343 | 6561.387222 | 393683.2333 | 23620994 |
Этот запрос показывает текущую дату и разницу между текущей датой и 1 января 2017 года в днях, часах, минутах и секундах.
Мы умножили разницу в днях на 24, чтобы преобразовать в часы, затем на 60, чтобы преобразовать в минуты, а затем снова на 60, чтобы преобразовать в секунды.
Пример 4. Форматирование SYSDATE с помощью TO_CHAR
В этом примере показано, как мы можем отформатировать выходные данные SYSDATE, чтобы также показать компонент времени.
NOW_DATE_TIME | |
01-OCT-17 |
SYSDATE | |
01-OCT-17 |
VALUE | |
DD-MON-RR |
VALUE |
DD-MON-RR HH24:MI:SS | < /tr>
Формат был обновлен до значения, которое мы установили.
Теперь давайте снова запустим наш запрос SYSDATE.
SYSDATE |
01-OCT-17 09:16:54 | < /tr>
Мы видим, что там указана та же дата, но теперь есть время.
Это связано с тем, что мы изменили формат даты с помощью команды ALTER SESSION.
Пример 6. Вставка SYSDATE
Чтобы вставить SYSDATE в таблицу, нам просто нужно убедиться, что столбец относится к типу данных DATE.
SYSDATE |
01-OCT-17 09:27:07 | < /tr>
Вы видите, что значение даты было успешно вставлено в таблицу.
Похожие функции
- 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 вариантов. Вот некоторые из наиболее популярных:MM | Числовой месяц (например, 07 ) |
MON | Сокращенное название месяца (например, JUL) |
MONTH | Полное название месяца (например, , ИЮЛЬ ) |
ДД | День месяца (например, 24 ) |
DY TD> | Сокращенное название дня (например, FRI) |
ГГГГ | 4-значный год (например, 1998) | < /TR>
ГГ | Последние 2 цифры года (например, 98) |
RR | То же, что и YY , но две цифры «округлены» до года в диапазоне от 1950 до 2049. Таким образом, например, 06 считается 2006 вместо 1906 | .
AM (или PM ) | Индикатор меридиана |
ЧЧ | Час дня ( 1–12 ) | TR>
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.
Текущее время
<УЛ>Операции 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 с примерами
Ниже приведены различные функции даты оракула с примерами:
Hadoop, наука о данных, статистика и др.
1. ТЕКУЩАЯ_ДАТА
Эта функция используется для получения текущей даты в часовом поясе сеанса. Она не требует параметров и является очень простой функцией.
Синтаксис:
Пример:
В этом примере мы попытаемся найти текущую дату сеанса с помощью этой функции.
Код:
ВЫБЕРИТЕ CURRENT_DATE ИЗ ДВОЙНОЙ;
В выводе мы увидим текущую дату часового пояса сеанса.
2. СИСТЕМНАЯ ДАТА
Эта функция возвращает текущую дату и время операционной системы, в которой установлена база данных Oracle.
Обучение Oracle (14 курсов, 8+ проектов) 14 онлайн-курсов | 8 практических проектов | 120+ часов | Поддающийся проверке сертификат об окончании | Пожизненный доступ
4,5 (8 460 оценок)
Синтаксис:
Пример:
В этом примере мы найдем системную дату операционной системы, в которой установлена текущая база данных.
Код:
выбрать sysdate из двойного;
Вывод:
Как мы видим, на снимке экрана показана системная дата.
3. ВЫДЕРЖКА
Эта функция извлечения в Oracle используется для извлечения определенного компонента, который может быть годом, днем, месяцем, часом, минутой, секундой, из значения даты.
Синтаксис:
ИЗВЛЕЧЕНИЕ (компонент из исходного кода)
Параметры:
- component: относится к компоненту, который мы хотим извлечь (год, день, месяц, час, минута, секунда).
- источник: относится к значению (DATE, TIMESTAMP), из которого мы хотим извлечь данные.
Пример:
В этом примере мы собираемся извлечь год из даты.
Код:
ВЫБЕРИТЕ
ИЗВЛЕКАТЬ( ГОД ОТ ДО_ДАТЫ( '29-Apr-2020 05:30:20 ', 'ДД-Пн-ГГГГ ЧЧ24:МИ:СС' )) ) ГОД
ОТ
ДВОЙНОЙ;
Мы использовали функцию to_date.
Вывод:
На приведенном выше снимке экрана видно, что год извлечен успешно.
4. TO_DATE
Эта функция преобразует дату в виде строки в значение даты. Он принимает три аргумента.
Синтаксис:
TO_DATE(строка, формат, nls_language)
Параметры:
- строка: относится к дате в виде строки, которую мы хотим преобразовать.
- format: относится к формату даты и времени, в который мы хотим преобразовать, и является необязательным параметром.
- nls_language: относится к языку названий дня и месяца. Это также необязательный параметр.
Пример:
В этом примере мы преобразуем дату в строке в значение даты.
Код:
ВЫБЕРИТЕ
TO_DATE( '20 АПРЕЛЯ 2020 ГОДА', 'ДД МЕС ГГГГ' )CONVERTED_DATE
FROM dual;
Вывод:
Как мы видим на снимке экрана, значение DATE было преобразовано в определенный формат.
5. TO_CHAR
Он используется для преобразования даты из значения DATE в указанный формат даты.
Синтаксис:
Параметры:
- выражение: относится к значению ДАТА или ИНТЕРВАЛ, которое необходимо преобразовать. Выражение может иметь тип DATE OR TIMESTAMP
- date_format: относится к указанному формату, в который мы собираемся преобразовать выражение. Это необязательный параметр.
Пример:
В этом примере мы собираемся преобразовать системную дату или текущую дату в строковое значение в формате ДД-ММ-ГГГГ.
Код:
ВЫБЕРИТЕ
TO_CHAR( sysdate, 'DD-MM-YYYY' )NEW_DATE
FROM
двойной;
Вывод:
Как видно на снимке экрана, системная дата была преобразована в указанный формат.
6. ПОСЛЕДНИЙ_ДЕНЬ
Эта функция используется для возврата последнего дня месяца определенной даты. Он принимает аргумент DATE в качестве параметра.
Синтаксис:
Параметр:
- дата: относится к значению даты, для которого мы хотим получить последний день месяца.
Пример:
В этом примере мы собираемся извлечь последний день месяца из sysdate.
Код:
ВЫБРАТЬ
LAST_DAY(sysdate) LAST_DAY
ИЗ
двойного;
Вывод:
Как видно на снимке экрана, запрос отображает последний день апреля.
7. MONTHS_BETWEEN
Эта функция используется для измерения количества месяцев между двумя датами.
В качестве аргументов принимает два параметра.
Синтаксис:
Параметры:
- from_date: относится к дате, из которой вычитается.
- to_date: относится к дате, которую нужно вычесть.
Пример:
В этом примере мы рассчитаем количество месяцев между системной датой и датой, когда Индия выиграла свой второй чемпионат мира по крикету, который состоялся 2 апреля 2011 года.
Код:
ВЫБЕРИТЕ
МЕСЯЦЫ_BETWEEN( sysdate, DATE '2011-04-02' ) MONTH_DIFFERENCE
ОТ
DUAL;
Вывод:
Как видно на снимке экрана, запрос отображает количество месяцев между двумя датами.
8. ДОБАВИТЬ_МЕСЯЦЕВ
Эта функция добавляет N месяцев к дате и возвращает тот же день через N месяцев.
Синтаксис:
Параметры:
- выражение: относится к значению даты.
- N: представляет количество месяцев.
Пример:
Чтобы получить текущую дату системного дня через 2 месяца с помощью функции ADD_MONTHS.
Код:
ВЫБЕРИТЕ
ADD_MONTHS( sysdate, 2 ) NEWDATE
ОТ
двойного;
Вывод:
9. CURRENT_TIMESTAMP
Эта функция возвращает текущую дату и время в часовом поясе сеанса.
Синтаксис:
Пример:
Давайте попробуем получить текущую отметку времени для этого часового пояса сеанса.
Код:
ВЫБЕРИТЕ
CURRENT_TIMESTAMP
ИЗ
двойного;
Вывод:
10. 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;
Вывод:
12. NEW_TIME()
Эта функция преобразует дату из одного часового пояса в другой часовой пояс.
Синтаксис:
NEW_TIME(дата, from_timezone, new_timezone)
Параметры:
- дата: относится к дате, которую мы хотим преобразовать.
- from_timezone: относится к часовому поясу даты.
- new_timezone: относится к часовому поясу, в который мы хотим преобразовать.
Код:
ВЫБЕРИТЕ
NEW_TIME( sysdate, 'PST', 'AST' ) TIME_IN_AST
ИЗ
DUAL;
Вывод:
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
двойной;
Вывод:
14. SESSIONTIMEZONE
Эта функция, как следует из названия, возвращает часовой пояс текущего рабочего сеанса.
Синтаксис:
Пример:
Чтобы получить часовой пояс текущего рабочего сеанса.
Код:
ВЫБЕРИТЕ
SESSIONTIMEZONE
ИЗ
двойного;
Вывод:
15. SYSTIMESTAMP
Эта функция представляет временную метку с часовым поясом. Он отображает результат с точностью до долей секунды.
Синтаксис:
Пример:
В этом примере мы попытаемся получить отметку времени системы.
Код:
ВЫБЕРИТЕ
SYSTIMESTAMP
ИЗ
двойного;
Вывод:
16. ТРАНК
Эта функция возвращает значение даты, усеченное до определенного формата/единицы измерения.
Синтаксис:
Параметры:
- дата: представляет значение даты, которое должно быть усечено.
- формат: относится к единице измерения, до которой будет усечено значение даты.
Пример:
Чтобы получить первый день текущего месяца.
Код:
ВЫБЕРИТЕ
TRUNC(SYSDATE, 'MM' ) МЕСЯЦ
ИЗ
двойного;
Вывод:
17. TZ_OFFSET
Эта функция возвращает смещение имени часового пояса от UTC.
Синтаксис:
Параметр:
- значение: относится к допустимому часовому поясу.
Пример:
Мы получим смещение часового пояса «Азия/Калькутта».
Код:
ВЫБЕРИТЕ
TZ_OFFSET('Азия/Калькутта') OFFSET
ОТ
DUAL;
Вывод:
Заключение
В этой статье мы узнали об определении функций даты Oracle, а также о различных типах функций даты, доступных в базе данных Oracle. Мы видели различные типы функций даты, их определения, синтаксис, а также примеры для каждого, чтобы лучше понять функции по отдельности.
Рекомендуемые статьи
Это руководство по функциям даты Oracle. Здесь мы обсуждаем введение в Oracle Date Functions с 17 функциями и примерами для лучшего понимания. Вы также можете ознакомиться со следующими статьями, чтобы узнать больше –
Читайте также:
- Как отобразить командную строку в Total Commander
- Как установить будильник для yandex station
- Почему хрипит звук на компьютере
- Как восстановить почту на Яндексе на компьютере
- Из чего сделан планшет