Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
Databricks Runtime 18.1 e superior
Se expr for uma cadeia de caracteres, analise-a de TIMESTAMP acordo com o primeiro padrão de correspondência na lista de formatos fornecida. Um ou mais dos formatos podem referenciar uma lista predefinida de formatos. Se expr for um tipo numérico, analise-o como um carimbo de data/hora Unix.
Sintaxe
parse_timestamp(expr [, { pattern [...] } ])
Argumentos
-
expr: um valor numérico ou de cadeia de caracteres a ser analisado em um
TIMESTAMP. Os tipos aceitos são:-
TINYINT,SMALLINT, ,INTBIGINT -
FLOAT,DOUBLE -
DECIMAL(até 18 precisão) STRING
-
-
padrão: uma lista opcional de padrões de carimbo de data/hora ou uma referência a uma lista predefinida, como
#iso8601ou#rfc3339. Os padrões de carimbo de data/hora devem ser uma cadeia de caracteres constante. Se nenhum padrão for especificado, será equivalente a especificar#extended.
Devoluções
Um TIMESTAMP que representa o analisado expr.
Se for expr uma cadeia de caracteres, ela será analisada de acordo com o primeiro padrão de correspondência. Se nenhum dos padrões corresponder, a função gerará um erro.
Se for expr numérico, ele sempre será analisado como um carimbo de data/hora unix.
Se expr for NULL, a função retorna NULL.
Para retornar NULL em vez de um erro quando a análise falhar, use try_parse_timestamp a função.
Observações
- Se a lista de padrões contiver
NULLvalores, eles serão ignorados. Se todos os padrões fornecidos foremNULL, o resultado seráNULL. - Se o carimbo de data/hora corresponder a um padrão que não contém informações de fuso horário, ele será analisado no fuso horário da sessão.
Condições de erro
- CANNOT_PARSE_TIMESTAMP
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- INVALID_PARAMETER_VALUE. PADRÃO
- DATATYPE_MISMATCH. NON_FOLDABLE_INPUT
Exemplos
-- 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
Referência de padrão
parse_timestamp e try_parse_timestamp a função usam um conjunto de padrões que difere de algumas maneiras do padrão de datetime usado por to_timestamp. A tabela a seguir lista todos os símbolos de padrão e se cada um tem suporte:
| Símbolo | Meaning | Exemplos | Suporte |
|---|---|---|---|
| U | Unix | Veja a observação abaixo | Supported |
| G | era | DC; Depois de Cristo | Sem suporte |
| y | ano | 2020; 20 | Supported |
| D | dia do ano | 189 | Sem suporte |
| M/L | mês do ano | 7; 07; Jul; Julho | Supported |
| d | dia do mês | 28 | Supported |
| P/q | trimestre do ano | 3; 03; T3; 3º trimestre | Sem suporte |
| E | day_of_week | Ter; Terça-feira | Supported |
| F | dia de semana alinhado no mês | 3 | Sem suporte |
| a | am-pm-do-dia | PM | Supported |
| h | hora-do-relógio-de-am-pm (1-12) | 12 | Supported |
| K | hora-of-am-pm (0-11) | 0 | Supported |
| k | relógio-hora do dia (1-24) | 1 | Sem suporte |
| H | hora do dia (0-23) | 0 | Supported |
| m | minuto da hora | 30 | Supported |
| s | segundo de minuto | 55 | Supported |
| S | fração de segundo | 978 | Supported |
| V | ID do fuso horário | América/Los_Angeles; Z; -08:30 | Supported |
| z | nome da time-zone | Hora Oficial do Pacífico; PST | Supported |
| O | zone-offset localizada | GMT+8; GMT+08:00; UTC-08:00 | Supported |
| X | deslocamento de zona 'Z' para zero | Z; -08; -0830; -08:30 | Com suporte (1 a 3 dígitos) |
| x | deslocamento de zona | +0000; -08; -0830; -08:30 | Com suporte (1 a 3 dígitos) |
| Z | deslocamento de zona | +0000; -0800; -08:00 | Supported |
| # | lista de padrões | #common, #iso8601 | Supported |
Observação
Padrão unix (U): A #unix lista de padrões analisa carimbos de data/hora da época unix. Para datas entre 1971-08-03 e 3554-06-09, a implementação pode desambiguar e analisar carimbos de data/hora Unix em segundos, microssegundos e nanossegundos. As datas fora desse intervalo podem falhar ao analisar ou analisar incorretamente. Não há suporte para inteiros negativos. Os valores fracionários têm suporte em até 9 casas decimais e são truncados para corresponder à precisão do tipo de resultado.
Localidade: Os espaços reservados de padrão não estão cientes da localidade. Os nomes de mês e dia têm suporte apenas em inglês.
Listas de padrões
Você pode passar uma lista de padrões predefinida por nome (por exemplo#extended, , #iso8601). #unix As seguintes listas de padrões estão disponíveis:
- comum – padrões comumente encontrados não definidos por um padrão
- iso8601
- rfc1036, rfc1123, rfc2822, rfc3164, rfc3339, rfc4287, rfc5322, rfc5424, rfc6265, rfc7231, rfc822, rfc850, rfc9110, rfc9557
- unix — Unix epoch timestamps only
- estendido – União de todas as listas acima; também o padrão quando nenhum padrão é especificado
- extended-dmy — Estendido com formatos específicos da localidade DMY
- extended-mdy — estendido com formatos específicos da localidade do MDY