Последнее обновление
UUID_V7_TO_DATETIME
Описание
Извлекает временную метку Unix в миллисекундах из UUID v7 и преобразует её в дату и время в выбранном часовом поясе; возвращает NULL, если на вход передано NULL.
Псевдоним
UUIDv7ToDateTime.
Синтаксис
UUID_V7_TO_DATETIME(<uuid> [, <time_zone>])
Параметры
| Параметр | Описание |
|---|---|
<uuid> | Значение типа UUID. |
<time_zone> | Необязательная строковая константа, например UTC, Asia/Shanghai или +08:00. По умолчанию используется значение переменной сеанса time_zone. Столбец с изменяющимися значениями часового пояса не допускается; недопустимый часовой пояс вызывает ошибку. |
Возвращаемое значение
Возвращает значение типа DATETIME(3). Возвращает NULL, если UUID или явно указанный часовой пояс равен NULL, либо если полученные дата и время выходят за пределы диапазона DATETIME. Если значение поля версии не равно 7, возвращает начало эпохи Unix (1970-01-01 00:00:00 UTC) в выбранном часовом поясе вместо NULL. Биты варианта UUID не проверяются.
Пример
SET time_zone = 'UTC';
SELECT UUID_V7_TO_DATETIME(CAST('00000000-0001-7000-8000-000000000000' AS UUID)) AS session_time,
UUID_V7_TO_DATETIME(CAST('00000000-0001-7000-8000-000000000000' AS UUID), 'Asia/Shanghai') AS shanghai_time;
+-------------------------+-------------------------+
| session_time | shanghai_time |
+-------------------------+-------------------------+
| 1970-01-01 00:00:00.001 | 1970-01-01 08:00:00.001 |
+-------------------------+-------------------------+
SELECT UUID_V7_TO_DATETIME(CAST('550e8400-e29b-41d4-a716-446655440000' AS UUID), 'UTC') AS non_v7,
UUID_V7_TO_DATETIME(CAST(NULL AS UUID), 'UTC') AS null_input,
UUID_V7_TO_DATETIME(CAST('550e8400-e29b-41d4-a716-446655440000' AS UUID), NULL) AS null_zone,
UUID_V7_TO_DATETIME(CAST('ffffffff-ffff-7000-8000-000000000000' AS UUID), 'UTC') AS out_of_range;
+-------------------------+------------+-----------+--------------+
| non_v7 | null_input | null_zone | out_of_range |
+-------------------------+------------+-----------+--------------+
| 1970-01-01 00:00:00.000 | NULL | NULL | NULL |
+-------------------------+------------+-----------+--------------+