Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:
Databricks Runtime 18.1 и выше
Если expr это строка, он анализируется TIMESTAMP в соответствии с первым шаблоном сопоставления в указанном списке форматов. Один или несколько форматов могут ссылаться на предопределенный список форматов. Если expr является числовым типом, он анализируется как метка времени Unix.
Синтаксис
parse_timestamp(expr [, { pattern [...] } ])
Аргументы
-
expr: строковое или числовое значение для синтаксического анализа
TIMESTAMP. Допустимые типы:-
TINYINT, ,SMALLINTINTBIGINT -
FLOAT,DOUBLE -
DECIMAL(до 18 точности) STRING
-
-
шаблон: необязательный список шаблонов меток времени или ссылка на предопределенный список, например
#iso8601или#rfc3339. Шаблон метки времени должен быть константной строкой. Если шаблон не указан, он эквивалентен указанию#extended.
Возвраты
Объект, TIMESTAMP представляющий синтаксический exprанализ.
expr Если строка является строкой, она анализируется в соответствии с первым шаблоном сопоставления. Если ни один из шаблонов не соответствует, функция вызывает ошибку.
expr Если числовое значение является числовым, он всегда анализируется как метка времени Unix.
Если expr есть NULL, функция возвращается NULL.
Чтобы вернуться NULL вместо ошибки при сбое синтаксического анализа, используйте try_parse_timestamp функцию.
Примечания
- Если список шаблонов
NULLсодержит значения, они игнорируются. Если указаны все предоставленные шаблоны, результатом являетсяNULLNULL. - Если метка времени соответствует шаблону без сведений о часовом поясе, он анализируется в часовом поясе сеанса.
Условия ошибок
- CANNOT_PARSE_TIMESTAMP
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- INVALID_PARAMETER_VALUE. УЗОР
- DATATYPE_MISMATCH. NON_FOLDABLE_INPUT
Примеры
-- Parse timestamp according to default pattern list
> SELECT parse_timestamp('2024-12-09T19:30:01');
2024-12-09 19:30:01.000
-- Parse a microsecond epoch timestamp using the unix pattern list
> SELECT parse_timestamp('1733772601000000', '#unix');
2024-12-09 19:30:01.000
-- Bad `expr` that does not match any pattern
> SELECT parse_timestamp('bad input');
Error: CANNOT_PARSE_TIMESTAMP
-- Use try_parse_timestamp to return NULL instead of error
> SELECT try_parse_timestamp('bad input');
NULL
-- Extend the default pattern list with custom patterns
> SELECT parse_timestamp(col, "#extended", "dd MMM, yyyy", "MMM d; yy") FROM VALUES ('2024-12-01'), ('02 Dec, 2024'), ('DEC 3; 24') AS t(col)
2024-12-01 00:00:00.000
2024-12-02 00:00:00.000
2024-12-03 00:00:00.000
Справочник по шаблону
parse_timestamp и try_parse_timestamp функция используют набор шаблонов, который отличается от стандартного шаблона даты и времени , используемого to_timestamp. В следующей таблице перечислены все символы шаблона и поддерживается ли каждая из них:
| Symbol | Значение | Примеры | Поддержка |
|---|---|---|---|
| U | Юникс | См. примечание ниже | Поддерживается |
| G | эра | н.э., нашей эры | Не поддерживаются |
| и | год | 2020; 20 | Поддерживается |
| Д | день года | 189 | Не поддерживаются |
| M/L | месяц года | 7; 07; июл; июль | Поддерживается |
| d | день месяца | 28 | Поддерживается |
| Q/q | квартал года | 3; 03; 3 кв.; III квартал | Не поддерживаются |
| E | день недели | Вт; вторник | Поддерживается |
| F | выровненный день недели в месяце | 3 | Не поддерживаются |
| a | утренние и дневные/вечерние часы | премьер-министр | Поддерживается |
| ч | час в 12-часовом формате (1–12) | 12 | Поддерживается |
| K | час в формате AM/PM (0–11) | 0 | Поддерживается |
| к | час в 24-часовом формате (1–24) | 1 | Не поддерживаются |
| H | час суток (0–23) | 0 | Поддерживается |
| m | минута в часе | 30 | Поддерживается |
| s | секунда минуты | 55 | Поддерживается |
| S | доли секунды | 978 | Поддерживается |
| V | идентификатор часового пояса | США/Лос-Анджелес; Z; –08:30 | Поддерживается |
| z | название часового пояса | тихоокеанское стандартное время; PST | Поддерживается |
| O | локализованное смещение часового пояса | GMT+8; GMT+08:00; UTC-08:00 | Поддерживается |
| X | смещение зоны "Z" для нуля | Z; -08; -0830; -08:30 | Поддерживается (1–3 цифры) |
| x | смещение часового пояса | +0000; -08; -0830; -08:30 | Поддерживается (1–3 цифры) |
| Z | смещение часового пояса | +0000; -0800; -08:00 | Поддерживается |
| # | Список шаблонов | #common, #iso8601 | Поддерживается |
Замечание
Шаблон Unix (U): Список #unix шаблонов анализирует метки времени эпохи Unix. Для дат между 1971-08-03 и 3554-06-09 реализация может диффамбигировать и анализировать метки времени Unix в секундах, микросекундах и наносекундах. Даты за пределами этого диапазона могут не выполнять синтаксический анализ или синтаксический анализ. Отрицательные целые числа не поддерживаются. Дробные значения поддерживаются до 9 десятичных разрядов и усечены для соответствия точности типа результата.
Языкового стандарта: Заполнители шаблонов не относятся к языковому стандарту. Имена месяцев и дней поддерживаются только на английском языке.
Списки шаблонов
Вы можете передать предопределенный список шаблонов по имени (например#extended, , #iso8601#unix). Доступны следующие списки шаблонов:
- common — часто найденные шаблоны, не определенные стандартом
- iso8601
- rfc1036, rfc1123, rfc2822, rfc3164, rfc3339, rfc4287, rfc5322, rfc5424, rfc6265, rfc7231, rfc822, rfc850, rfc9110, rfc957
- Unix — метки времени эпохи Unix
- extended — объединение всех перечисленных выше списков; также значение по умолчанию, если шаблон не указан
- extended-dmy — расширенные форматы языкового стандарта DMY
- extended-mdy — расширенные форматы языкового стандарта MDY