Как timestamp перевести в дату sql
Информация о материале Автор: Сергей Жилин Категория: Вопросы и ответы Oracle Опубликовано: 26 октября 2010 Просмотров: 13139
SQL> SELECT SYSTIMESTAMP "TIMESTAMP", CAST(SYSTIMESTAMP AS DATE) "DATE" 2 FROM dual; TIMESTAMP DATE --------------------------------------------------------------------------- --------- 26-OCT-10 03.57.07.220160 PM +04:00 26-OCT-10
Похожие материалы
Самое популярное
- Как посмотреть размер таблицы?
- Как посмотреть план запроса?
- Как посмотреть, когда у пользователя последний раз менялся пароль?
- Как вычислить разницу между двумя датами в соседних строках одного столбца?
- Как узнать, какие опции Oracle используются базой данных?
Комментарии
#1 Вагап 19.05.2015 10:19
SYSTIMESTAMP::d ate
You have no rights to post comments
Типы данных и функции даты и времени (Transact-SQL)
В разделах этой статьи представлен обзор всех типов данных и функций даты и времени Transact-SQL.
- Типы данных даты и времени
- Функции даты и времени
- Функции, возвращающие значения системной даты и времени
- Функции, возвращающие компоненты даты и времени
- Функции, возвращающие значения даты и времени из их компонентов
- Функции, возвращающие значения разности даты и времени
- Функции, изменяющие значения даты и времени
- Функции, устанавливающие или возвращающие функции формата сеанса
- Функции, проверяющие значения даты и времени
Типы данных даты и времени
Типы данных даты и времени Transact-SQL перечислены в следующей таблице:
Тип данных Формат Диапазон Точность Объем памяти (в байтах) Определяемая пользователем точность в долях секунды Смещение часового пояса time чч:мм:сс[.ннннннн] От 00:00:00.0000000 до 23:59:59.9999999 100 наносекунд от 3 до 5 Да Нет date ГГГГ-ММ-ДД От 0001-01-01 до 31.12.99 1 день 3 Нет Нет smalldatetime ГГГГ-ММ-ДД чч:мм:сс От 01.01.1900 до 06.06.2079 1 минута 4 нет Нет datetime ГГГГ-ММ-ДД чч:мм:сс[.ннн] От 01.01.1753 до 31.12.9999 0,00333 секунды 8 Нет Нет datetime2 ГГГГ-ММ-ДД чч:мм:сс[.ннннннн] От 0001-01-01 00:00:00.0000000 до 9999-12-31 23:59:59.9999999 100 наносекунд От 6 до 8 Да Нет datetimeoffset ГГГГ-ММ-ДД чч:мм:сс[.ннннннн] [+|-]чч:мм От 0001-01-01 00:00:00.0000000 до 9999-12-31 23:59:59.9999999 (время в формате UTC) 100 наносекунд От 8 до 10 Да Да Тип данных Transact-SQL rowversion не относится к типам данных даты и времени. Тип данных timestamp является устаревшим синонимом rowversion.
Функции даты и времени
В следующих таблицах приводятся функции даты и времени Transact-SQL. Дополнительные сведения о детерминизме см. в статье Детерминированные и недетерминированные функции.
Функции, возвращающие значения системной даты и времени
Transact-SQL наследует все значения системной даты и времени от операционной системы компьютера, на котором работает экземпляр SQL Server.
Высокоточные функции системной даты и времени
Начиная с SQL Server 2008 (10.0.x) ядро СУБД получает значения даты и времени с помощью API Windows GetSystemTimeAsFileTime(). Точность зависит от физического оборудования и версии Windows, в которой запущен экземпляр SQL Server. Точность возвращаемых значений этого API-интерфейса задана равной 100 нс. Точность может быть определена с помощью метода GetSystemTimeAdjustment() API-интерфейса Windows.
Функция Синтаксис Возвращаемое значение Тип возвращаемых данных Детерминизм SYSDATETIME SYSDATETIME ( ) Возвращает значение типа datetime2(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Возвращаемое значение не содержит смещение часового пояса. datetime2(7) Недетерминированная SYSDATETIMEOFFSET SYSDATETIMEOFFSET ( ) Возвращает значение типа datetimeoffset(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Возвращаемое значение содержит смещение часового пояса. datetimeoffset(7) Недетерминированная SYSUTCDATETIME SYSUTCDATETIME ( ) Возвращает значение типа datetime2(7), которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Функция возвращает значения даты и времени в формате UTC. datetime2(7) Недетерминированная Функции системной даты и времени меньшей точности
Функция Синтаксис Возвращаемое значение Тип возвращаемых данных Детерминизм CURRENT_TIMESTAMP CURRENT_TIMESTAMP Возвращает значение типа datetime, которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Возвращаемое значение не содержит смещение часового пояса. datetime Недетерминированная GETDATE GETDATE ( ) Возвращает значение типа datetime, которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Возвращаемое значение не содержит смещение часового пояса. datetime Недетерминированная GETUTCDATE GETUTCDATE ( ) Возвращает значение типа datetime, которое содержит дату и время компьютера, на котором запущен экземпляр SQL Server. Функция возвращает значения даты и времени в формате UTC. datetime Недетерминированная Функции, возвращающие компоненты даты и времени
Функция Синтаксис Возвращаемое значение Тип возвращаемых данных Детерминизм DATE_BUCKET DATE_BUCKET ( datepart, number, date, origin ) Возвращает значение даты и времени, соответствующее началу каждого контейнера даты и времени, из временной метки, определенной параметром origin или исходным значением по умолчанию 1900-01-01 00:00:00.000 , если параметр orgin не указан. Тип возвращаемого значения зависит от типа аргумента, переданного в параметре date. Недетерминированная DATENAME DATENAME ( datepart, date ) Возвращает строку символов, представляющую указанную часть datepart заданного типа date. nvarchar Недетерминированная DATEPART DATEPART ( datepart, date ) Возвращает целое число, представляющее указанную часть datepart заданного типа date. int Недетерминированная DATETRUNC DATETRUNC ( datepart, date ) Эта функция возвращает входную дату date, усеченную до указанной части datepart. Тип возвращаемого значения зависит от типа аргумента, переданного в параметре date. Недетерминированная DAY DAY ( date ) Возвращает целое число, представляющее часть дня указанного типа date. int Детерминированный MONTH MONTH ( date ) Возвращает целое число, представляющее часть месяца указанного типа date. int Детерминированный YEAR YEAR ( date ) Возвращает целое число, представляющее часть года указанного типа date. int Детерминированный Функции, возвращающие значения даты и времени из их компонентов
Функция Синтаксис Возвращаемое значение Тип возвращаемых данных Детерминизм DATEFROMPARTS DATEFROMPARTS ( year, month, day ) Возвращает значение date, соответствующее указанному числу, месяцу и году. date Детерминированный DATETIME2FROMPARTS DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision) Возвращает значение datetime2, соответствующее указанной дате и времени с заданной точностью. datetime2(precision) Детерминированный DATETIMEFROMPARTS DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds) Возвращает значение datetime, соответствующее указанной дате и времени. datetime Детерминированный DATETIMEOFFSETFROMPARTS DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision) Возвращает значение datetimeoffset для указанных даты и времени с указанными смещением и точностью. datetimeoffset(precision) Детерминированный SMALLDATETIMEFROMPARTS SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute ) Возвращает значение smalldatetime, соответствующее указанной дате и времени. smalldatetime Детерминированный TIMEFROMPARTS TIMEFROMPARTS ( hour, minute, seconds, fractions, precision ) Возвращает значение time, соответствующее указанному времени с заданной точностью. time(precision) Детерминированный Функции, возвращающие значения разности даты и времени
Функция Синтаксис Возвращаемое значение Тип возвращаемых данных Детерминизм DATEDIFF DATEDIFF ( datepart, startdate, enddate ) Возвращает количество границ даты или времени datepart, пересекающихся между двумя указанными датами. int Детерминированный DATEDIFF_BIG DATEDIFF_BIG ( datepart, startdate, enddate ) Возвращает количество границ даты или времени datepart, пересекающихся между двумя указанными датами. bigint Детерминированный Функции, изменяющие значения даты и времени
Функция Синтаксис Возвращаемое значение Тип возвращаемых данных Детерминизм DATEADD DATEADD (datepart, number, date ) Возвращает новое значение datetime, добавляя интервал к указанной части datepart заданной даты date. Тип данных аргумента date Детерминированный EOMONTH EOMONTH ( start_date [, month_to_add ] ) Возвращает последний день месяца, содержащего указанную дату, с необязательным смещением. Тип возвращаемого значения — это тип аргумента start_date или тип данных date. Детерминированный SWITCHOFFSET SWITCHOFFSET (DATETIMEOFFSET, time_zone) Функция SWITCHOFFSET изменяет смещение часового пояса для значения DATETIMEOFFSET и сохраняет значение UTC. Значение datetimeoffset с точностью в долях секунд, заданной в аргументе DATETIMEOFFSET Детерминированный TODATETIMEOFFSET TODATETIMEOFFSET (expression, time_zone) TODATETIMEOFFSET преобразует значение типа datetime2 в значение типа datetimeoffset. Функция TODATETIMEOFFSET преобразует значение datetime2 в местное время для указанного time_zone. Значение datetimeoffset с точностью в долях секунд, заданной в аргументе datetime Детерминированный Функции, устанавливающие или возвращающие функции формата сеанса
Функция Синтаксис Возвращаемое значение Тип возвращаемых данных Детерминизм @@DATEFIRST @@DATEFIRST Возвращает текущее значение параметра SET DATEFIRST для сеанса. tinyint Недетерминированная SET DATEFIRST SET DATEFIRST < number | @number_var > Устанавливает первый день недели в виде числа от 1 до 7. Неприменимо Неприменимо SET DATEFORMAT SET DATEFORMAT < format | @format_var > Задает порядок составляющих даты (месяц/день/год) для ввода данных типа datetime или smalldatetime. Неприменимо Неприменимо @@LANGUAGE @@LANGUAGE Возвращает название использующегося в настоящий момент языка. @@LANGUAGE не является функцией даты или времени. Однако на данные, выводимые функциями даты, могут повлиять настройки языка. Неприменимо Неприменимо SET LANGUAGE SET LANGUAGE < [ N ] ‘language‘ | @language_var > Устанавливает языковую среду сеанса и системных сообщений. SET LANGUAGE не является функцией даты или времени. Однако на данные, выводимые функциями даты, влияет параметр языка. Неприменимо Неприменимо sp_helplanguage sp_helplanguage [ [ = ] ‘language‘ ] Возвращает сведения о формате даты всех поддерживаемых языков. sp_helplanguage не является хранимой процедурой даты или времени. Однако на данные, выводимые функциями даты, влияет параметр языка. Неприменимо Неприменимо Функции, проверяющие значения даты и времени
Функция Синтаксис Возвращаемое значение Тип возвращаемых данных Детерминизм ISDATE ISDATE ( expression ) Определяет, является ли входное выражение типа datetime или smalldatetime допустимым значением даты или времени. int Функция ISDATE детерминирована, только если используется совместно с функцией CONVERT и если заданный параметр стиля CONVERT не равен 0, 100, 9 или 109. Дата и время — см. также
Статья Описание FORMAT Возвращает значение в указанных формате и культуре (не обязательно). Для выполнения форматирования значения даты, времени и чисел с учетом локали в виде строк используется функция FORMAT. Функции CAST и CONVERT (Transact-SQL) Предоставляет сведения о преобразовании значений даты и времени в строковые литералы и обратно, а также в другие форматы даты и времени. Написание инструкций Transact-SQL, адаптированных к международному использованию Предоставляет рекомендации относительно переносимости баз данных и приложений баз данных, использующих инструкции Transact-SQL, с одного языка на другой или в многоязычную среду. Скалярные функции ODBC (Transact-SQL) Предоставляет сведения о скалярных функциях ODBC, которые могут использоваться в инструкциях Transact-SQL. К ним относятся функции даты и времени ODBC. AT TIME ZONE (Transact-SQL) Обеспечивает преобразование часовых поясов. См. также
- Функции
- Типы данных (Transact-SQL)
SQL-Ex blog
В этой статье мы рассмотрим наиболее часто используемые функции работы с датой и временем в PostgreSQL: LOCALTIMESTAMP(), LOCALTIME(), TO_DATE(), TO_TIMESTAMP(). Если вы пропустили первую часть, начните с неё.
LOCALTIMESTAMP()
Функция LOCALTIMESTAMP() возвращает текущие дату и время без локального часового пояса. Функция может иметь необязательный аргумент, называемый точностью. Базовый синтаксис:
SELECT LOCALTIMESTAMP;
Первая часть результата представляет дату, за которой следует время в 24-часовом формате. Поскольку точность не указана, возвращается 6 десятичных знаков.

В этом примере число 2 в аргументе задает точность, следовательно на выходе будет 2 десятичных знака.
SELECT LOCALTIMESTAMP(2);

В мире программирования функция LOCALTIMESTAMP часто используется для вставки значений по умолчанию в столбцы, которые отслеживают текущее время вставки записей, например, в столбцах аудита.
Давайте рассмотрим следующий пример, чтобы понять сценарий. В этой таблице registration_datetime является столбцом аудита.
CREATE TABLE registration(
student_id serial PRIMARY KEY,
student_name varchar(255) NOT NULL,
registration_datetime TIMESTAMP DEFAULT LOCALTIMESTAMP
);Теперь вставим запись в эту таблицу
INSERT INTO registration(student_name)
VALUES('James Watt');Видим, что наряду с предоставленными данными пользователя, столбец аудита так же заполнился текущим значением временной метки.

LOCALTIME()
Функция LOCALTIME() возвращает текущее время без локального часового пояса. Функция принимает необязательный аргумент, называемый точностью. Базовый синтаксис:
SELECT LOCALTIME;
Результат представляет собой время в 24-часовом формате. Поскольку точность не указывалась, выводится 6 десятичных знаков.

В этом примере в качестве аргумента точности передается значение 2, поэтому выводится 2 десятичных знака.
SELECT LOCALTIME(2);

Подобно функции LOCALTIMESTAMP, функция LOCALTIME также часто используется для вставки значений по умолчанию в столбцы, которые отслеживают текущее время вставки записей — столбцах аудита.
В следующем примере столбцы таблицы registration_date и registration_time являются столбцами аудита.
CREATE TABLE registration(
student_id serial PRIMARY KEY,
student_name varchar(255) NOT NULL,
registration_date DATE DEFAULT CURRENT_DATE,
registration_time TIME DEFAULT LOCALTIME
);Давайте вставим теперь запись в таблицу:
INSERT INTO registration(student_name)
VALUES('Shivayan Mukherjee');Видим, что столбцы аудита заполняются текущими датой и временем, наряду с предоставленными данными о пользователе.

TO_DATE
Функция TO_DATE() помогает преобразовать строку в дату и, возможно, является одной из наиболее важных и широко используемых функций даты/времени PostgreSQL в мире программирования. Функция TO_DATE() конвертирует строковый литерал в значение даты. Базовый синтаксис:
Функция TO_DATE() принимает два параметра. Первый параметр — это строка, которую вы хотите конвертировать в дату. Второй параметр — формат даты. Функция TO_DATE() возвращает значение даты.
Пример 1:
В этом примере входная строка преобразуется в дату в соответствии с входным форматом ‘YYYYMMDD’, где YYYY — год четырьмя цифрами, MM — месяц двумя цифрами и DD — день двумя цифрами.
SELECT TO_DATE('20210910','YYYYMMDD');
Пример 2:
Важно заметить, что входной текст должен соответствовать указанному формату даты. Будет работать следующий запрос:
SELECT TO_DATE('10 Sep 2021', 'DD Mon YYYY');
Этот запрос вызовет ошибку, т.к. месяц и год в строке не соответствуют форматированию.
SELECT TO_DATE('10 Sep 2021', 'DD YYYY Mon');
TO_TIMESTAMP()
Функция TO_TIMESTAMP() помогает конвертировать строку в временную метку. функция TO_TIMESTAMP() преобразует строковый литерал в метку времени на основе указанного формата. Базовый синтаксис:
Функция TO_TIMESTAMP() принимает два параметра — строку, которую требуется преобразовать к метке времени, и соответствующий формат. Функция TO_TIMESTAMP() возвращает временную метку с часовым поясом.
Пример 1:
В этом примере входная строка преобразуется к дате в соответствии с входным форматом ‘YYYY-MM-DD HH:MI:SS’, где YYYY — год, заданный четырьмя цифрами, MM — месяц двумя цифрами и DD — день двумя цифрами с последующим форматом часов, минут и секунд.
SELECT TO_TIMESTAMP(
'2021-09-10 11:30:20',
'YYYY-MM-DD HH:MI:SS'
);
Пример 2: время в 24-часовом формате
Выражение времени в первом примере поддерживает 12-часовой формат времени. Для поддержки 24-часового формата времени должно использоваться выражение ‘HH24’, как показано в этом примере.
SELECT TO_TIMESTAMP(
'2021-09-10 21:30:20',
'YYYY-MM-DD HH24:MI:SS'
);
Обратные ссылки
Нет обратных ссылок
Комментарии
Показывать комментарии Как список | Древовидной структурой
Автор не разрешил комментировать эту запись
Как преобразовать дату в timestamp?
В таблице строковое поле со значениями вида: September 11, 2019, 5:02:44 PM
Как просто и красиво преобразовать это в timestamp?В чем ошибка (September -> Сентябрь)
SELECT TO_DATE('September 11, 2019, 5:02:44 PM', 'MONTH DD, YYYY, HH:MI:SS AM') FROM dual;- Вопрос задан более трёх лет назад
- 969 просмотров
Комментировать
Решения вопроса 1
У тебя язык даты по умолчанию NLS_DATE_LANGUAGE не соответствует указанному в запросе, поэтому возникает ошибка. Язык можно явно указывать в запросе, например:
SELECT TO_DATE('September 11, 2019, 5:02:44 PM', 'MONTH DD, YYYY, HH:MI:SS AM', 'NLS_DATE_LANGUAGE=AMERICAN') FROM DUAL;или изменить на уровне сессии:
alter session set NLS_LANGUAGE=AMERICANПосмотреть значение параметра языка можно следующим запросом
select * from nls_session_parameters where parameter = 'NLS_DATE_LANGUAGE';Преобразовать в timestamp можно вот так:
SELECT cast (TO_DATE('September 11, 2019, 5:02:44 PM', 'MONTH DD, YYYY, HH:MI:SS AM','NLS_DATE_LANGUAGE=AMERICAN') AS TIMESTAMP) FROM DUAL;
