CURRENT_TIMESTAMP (Transact-SQL)
Эта функция возвращает текущую системную метку времени базы данных в виде значения datetime без смещения часового пояса базы данных. CURRENT_TIMESTAMP наследует это значение от операционной системы компьютера, на котором работает экземпляр SQL Server.
SYSDATETIME и SYSUTCDATE имеют большую точность в долях секунды, чем GETDATE и GETUTCDATE . Функция SYSDATETIMEOFFSET включает смещение часового пояса, заданное в системе. Функции SYSDATETIME , SYSUTCDATETIME и SYSDATETIMEOFFSET могут быть присвоены переменным любого типа даты и времени.
Эта функция ANSI SQL эквивалентна функции GETDATE.
Обзор всех типов данных и функций даты и времени в языке Transact-SQL см. в статье Типы данных и функции даты и времени.
Синтаксис
CURRENT_TIMESTAMP
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Аргументы
Эта функция не имеет аргументов.
Тип возвращаемых данных
datetime
Remarks
Функция CURRENT_TIMESTAMP может использоваться в инструкциях Transact-SQL везде, где допустимо использование выражения datetime.
CURRENT_TIMESTAMP является недетерминированной функцией. Невозможно проиндексировать представления и выражения, ссылающиеся на этот столбец.
Примеры
В приведенных ниже примерах с помощью шести системных функций SQL Server, которые возвращают текущую дату и время, возвращается дата, время или дата и время. Значения возвращаются последовательно, поэтому могут различаться на доли секунды. Обратите внимание на то, что возвращаемые значения будут соответствовать фактическим дню и времени выполнения.
А. Получение текущих системных значений даты и времени
SELECT SYSDATETIME() ,SYSDATETIMEOFFSET() ,SYSUTCDATETIME() ,CURRENT_TIMESTAMP ,GETDATE() ,GETUTCDATE(); /* Returned: SYSDATETIME() 2007-04-30 13:10:02.0474381 SYSDATETIMEOFFSET()2007-04-30 13:10:02.0474381 -07:00 SYSUTCDATETIME() 2007-04-30 20:10:02.0474381 CURRENT_TIMESTAMP 2007-04-30 13:10:02.047 GETDATE() 2007-04-30 13:10:02.047 GETUTCDATE() 2007-04-30 20:10:02.047 */
Б. Получение текущей системной даты
SELECT CONVERT (DATE, SYSDATETIME()) ,CONVERT (DATE, SYSDATETIMEOFFSET()) ,CONVERT (DATE, SYSUTCDATETIME()) ,CONVERT (DATE, CURRENT_TIMESTAMP) ,CONVERT (DATE, GETDATE()) ,CONVERT (DATE, GETUTCDATE()); /* Returned SYSDATETIME() 2007-05-03 SYSDATETIMEOFFSET()2007-05-03 SYSUTCDATETIME() 2007-05-04 CURRENT_TIMESTAMP 2007-05-03 GETDATE() 2007-05-03 GETUTCDATE() 2007-05-04 */
В. Получение текущего системного времени
SELECT CONVERT (TIME, SYSDATETIME()) ,CONVERT (TIME, SYSDATETIMEOFFSET()) ,CONVERT (TIME, SYSUTCDATETIME()) ,CONVERT (TIME, CURRENT_TIMESTAMP) ,CONVERT (TIME, GETDATE()) ,CONVERT (TIME, GETUTCDATE()); /* Returned SYSDATETIME() 13:18:45.3490361 SYSDATETIMEOFFSET()13:18:45.3490361 SYSUTCDATETIME() 20:18:45.3490361 CURRENT_TIMESTAMP 13:18:45.3470000 GETDATE() 13:18:45.3470000 GETUTCDATE() 20:18:45.3470000 */
Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)
SELECT CURRENT_TIMESTAMP;
TIMESTAMP Тип
Представляет значения, состоящие из значений полей year, month, day, hour, minute и second, с локальным часовом поясом сеанса. Значение метки времени представляет абсолютную точку во времени.
Синтаксис
TIMESTAMP
Ограничения
Диапазон поддерживаемых меток времени — June 23 -5877641 CE July 11 +5881580 CE .
Литералы
TIMESTAMP timestampString timestampString
- + или — : необязательный знак. — указывает BCE, + указывает CE (по умолчанию).
- yyyy : год, состоящий не менее четырех цифр.
- [m]m : месяц с одной или двумя цифрами от 01 до 12.
- [d]d : день с одной или двумя цифрами от 01 до 31.
- h[h] : час с одной или двумя цифрами от 00 до 23.
- m[m] : одна или две цифры минуты от 00 до 59.
- s[s] : одна или две цифры секунды от 00 до 59.
- [ms][ms][ms][us][us][us] : до 6 цифр долей секунды.
- Часовой пояс Zulu (UTC+0)
- +|-[h]h:[m]m
- Идентификатор с одним из префиксов UTC+, UTC-, GMT+, GMT-, UT+ или UT-, и суффиксом в форматах:
- +|-h[h]
- +|-hh[:]mm
- +|-чч:мм:сс
- +|-hhmmss
Если компоненты месяца или дня не указаны, по умолчанию используется значение 1. Если не указаны компоненты hour, minute или second, они по умолчанию имеют значение 0. Если параметр не zoneId указан, по умолчанию используется часовой пояс сеанса.
Если литерал представляет правильную метку времени, Azure Databricks вызывает ошибку.
Примечания
Метки времени с локальным часовыми поясами внутренне нормализуются и сохраняются в формате UTC. При извлечении значения или его части применяется часовой пояс локального сеанса.
Примеры
> SELECT TIMESTAMP'0000'; 0000-01-01 00:00:00 > SELECT TIMESTAMP'2020-12-31'; 2020-12-31 00:00:00 > SELECT TIMESTAMP'2021-7-1T8:43:28.123456'; 2021-07-01 08:43:28.123456 > SELECT current_timezone(), TIMESTAMP'2021-7-1T8:43:28UTC+3'; America/Los_Angeles 2021-06-30 22:43:28 > SELECT CAST('1908-03-15 10:1:17' AS TIMESTAMP) 1908-03-15 10:01:17 > SELECT TIMESTAMP'+10000'; +10000-01-01 00:00:00Datetime или timestamp
На днях я столкнулся с тем, что многие разработчики не знают в чём отличие типов данных DATETIME и TIMESTAMP в MySQLе, а так же как хранить дату и время, если необходимо учитывать разные часовые пояса для разных пользователей веб-приложения. Поэтому хочу дать ниже разъяснения с пояснениями.
DATETIME
Хранит время в виде целого числа вида YYYYMMDDHHMMSS, используя для этого 8 байтов. Это время не зависит от временной зоны. Оно всегда отображается при выборке точно так же, как было сохранено, независимо от того какой часовой пояс установлен в MySQL. Даю пример:mysql> create table `dt1` ( col datetime NOT NULL );
mysql> SET @@session.time_zone=’+00:00′;
mysql> select now();
+———————+
| now() |
+———————+
| 2009-06-04 18:13:56 |
+———————+mysql> insert into dt1 values(now());
mysql> insert into dt1 values(now());
TIMESTAMP
Хранит 4-байтное целое число, равное количеству секунд, прошедших с полуночи 1 января 1970 года по усреднённому времени Гринвича (т.е. нулевой часовой пояс, точка отсчёта часовых поясов). При получении из базы отображается с учётом часового пояса. Часовой пояс может быть задан в операционной системе, глобальных настройках MySQL или в конкретной сессии. Запомните, что сохраняется всегда количество секунд по UTC (универсальное координированное время, солнечное время на меридиане Гринвича), а не по локальному часовому поясу. Пример:Ещё одно отличие! TIMESTAMP по умолчанию NOT NULL, а его значение по умолчанию равно NOW().
mysql> insert into dt1 values(null);
ERROR 1048 (23000): Column ‘col’ cannot be null
mysql> insert into tm1 values(null);
Query OK, 1 row affected (0.00 sec)
mysql> select * from tm1;
+———————+
| col |
+———————+
| 2009-06-04 18:25:08 |
| 2009-06-04 18:25:26 |
| 2009-06-04 18:32:50 |
+———————+Дополнение. Для тех, кого смущает использование функции NOW().
mysql> set @@session.time_zone = ‘+00:00’;
mysql> insert into dt1 values(‘2009-06-04 22:00:00’);
mysql> set @@session.time_zone = ‘+01:00’;
mysql> select * from dt1;
+———————+
| col |
+———————+
| 2009-06-04 22:00:00 |
+———————+mysql> set @@session.time_zone = ‘+00:00’;
mysql> insert into tm1 values(‘2009-06-04 22:00:00’);
mysql> set @@session.time_zone = ‘+01:00’;
mysql> select * from tm1;
+———————+
| col |
+———————+
| 2009-06-04 23:00:00 |
+———————+MySQL TIMESTAMP() Function
The TIMESTAMP() function returns a datetime value based on a date or datetime value.
Note: If there are specified two arguments with this function, it first adds the second argument to the first, and then returns a datetime value.
Syntax
TIMESTAMP(expression, time)
Parameter Values
Parameter Description expression Required. A date or datetime value time Optional. A time value to add to expression Technical Details
Works in: From MySQL 4.0 More Examples
Example
Return a datetime value based on the arguments:
SELECT TIMESTAMP(«2017-07-23»);
COLOR PICKER


Report Error
If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:
Top Tutorials
Top References
Top Examples
Get Certified
W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning.
Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness
of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.
