Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
Databricks Runtime 18.1 y versiones posteriores
Si expr es una cadena, la analiza en según TIMESTAMP el primer patrón coincidente de la lista de formatos especificada. Uno o varios de los formatos pueden hacer referencia a una lista predefinida de formatos. Si expr es un tipo numérico, lo analiza como una marca de tiempo de Unix.
Sintaxis
parse_timestamp(expr [, { pattern [...] } ])
Argumentos
-
expr: cadena o valor numérico que se va a analizar en .
TIMESTAMPLos tipos aceptados son:-
TINYINT,SMALLINT, ,INT,BIGINT -
FLOAT,DOUBLE -
DECIMAL(hasta 18 precisión) STRING
-
-
pattern: una lista opcional de patrones de marca de tiempo o una referencia a una lista predefinida, como
#iso8601o#rfc3339. Los patrones de marca de tiempo deben ser una cadena constante. Si no se especifica ningún patrón, equivale a especificar#extended.
Devoluciones
que TIMESTAMP representa el objeto analizado expr.
Si es expr una cadena, se analiza según el primer patrón coincidente. Si ninguno de los patrones coincide, la función genera un error.
Si es expr numérico, siempre se analiza como una marca de tiempo de Unix.
Si expr es NULL, la función devuelve NULL.
Para devolver NULL en lugar de un error cuando se produce un error en el análisis, use latry_parse_timestamp función .
Notas
- Si la lista de patrones contiene
NULLvalores, se omiten. Si todos los patrones proporcionados sonNULL, el resultado esNULL. - Si la marca de tiempo coincide con un patrón que no contiene información de zona horaria, se analiza en la zona horaria de la sesión.
Condiciones del error
- CANNOT_PARSE_TIMESTAMP
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- INVALID_PARAMETER_VALUE. PATRÓN
- DATATYPE_MISMATCH. NON_FOLDABLE_INPUT
Ejemplos
-- 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
Referencia de patrones
parse_timestamp y try_parse_timestamp la función usan un conjunto de patrones que difiere de alguna manera del patrón de fecha y hora estándar usado por to_timestamp. En la tabla siguiente se enumeran todos los símbolos de patrón y si se admite cada uno:
| Símbolo | Meaning | Ejemplos | Apoyo |
|---|---|---|---|
| U | Unix | Consulte la nota siguiente. | Soportado |
| G | era | Año del Señor; Después de Cristo | No soportado |
| y | año | 2020; 20 | Soportado |
| D | día del año | 189 | No soportado |
| M/L | mes del año | 7; 07; Jul; Julio | Soportado |
| d | día del mes | 28 | Soportado |
| Q/q | trimestre del año | 3; 03; T3; tercer trimestre | No soportado |
| E | día de la semana | Mar; Martes | Soportado |
| F | día de la semana alineado en el mes | 3 | No soportado |
| a | am o pm del día | PM | Soportado |
| h | hora de reloj de am o pm (1-12) | 12 | Soportado |
| K | hora de am o pm (0-11) | 0 | Soportado |
| k | hora de reloj de día (1-24) | 1 | No soportado |
| H | hora de día (0-23) | 0 | Soportado |
| m | minuto de hora | 30 | Soportado |
| s | segundo de minuto | 55 | Soportado |
| S | fracción de segundo | 978 | Soportado |
| V | id. de zona horaria | América/Los_Angeles; Z; -08:30 | Soportado |
| z | nombre de zona horaria | Hora estándar del Pacífico; PST | Soportado |
| O | diferencia horaria localizada | GMT+8; GMT+08:00; UTC-08:00 | Soportado |
| X | desplazamiento de zona "Z" para cero | Z; -08; -0830; -08:30 | Compatible (1-3 dígitos) |
| x | desplazamiento de zona | +0000; -08; -0830; -08:30 | Compatible (1-3 dígitos) |
| Z | desplazamiento de zona | +0000; -0800; -08:00 | Soportado |
| # | lista de patrones | #common, #iso8601 | Soportado |
Nota:
Patrón unix (U): La #unix lista de patrones analiza las marcas de tiempo de época de Unix. Para las fechas entre 1971-08-03 y 3554-06-09, la implementación puede desambiguar y analizar marcas de tiempo de Unix en segundos, microsegundos y nanosegundos. Las fechas fuera de ese intervalo pueden no analizarse o analizarse incorrectamente. No se admiten enteros negativos. Los valores fraccionarios se admiten hasta 9 posiciones decimales y se truncan para que coincidan con la precisión del tipo de resultado.
Configuración regional: Los marcadores de posición de patrón no son compatibles con la configuración regional. Los nombres de mes y día solo se admiten en inglés.
Listas de patrones
Puede pasar una lista de patrones predefinida por nombre (por ejemplo #extended, , #iso8601, #unix). Están disponibles las siguientes listas de patrones:
- común : patrones encontrados normalmente no definidos por un estándar
- iso8601
- rfc1036, rfc1123, rfc2822, rfc3164, rfc3339, rfc4287, rfc5322, rfc5424, rfc6265, rfc7231, rfc822, rfc850, rfc9110, rfc9557
- unix : marcas de tiempo de época de Unix solo
- extendida — Unión de todas las listas anteriores; también el valor predeterminado cuando no se especifica ningún patrón
- extended-dmy : extendido con formatos específicos de la configuración regional DMY
- extended-mdy : extendido con formatos específicos de la configuración regional MDY