Pular para o conteúdo

TO_TIMESTAMP converte uma expressão numa data com hora (timestamp/datetime).

A função pode aceitar um ou dois argumentos. Se receber um argumento, a função extrai uma data da cadeia de caracteres. Se o argumento for um número inteiro, a função interpreta-o como o número de segundos, milissegundos ou microssegundos antes (se for negativo) ou depois (se for positivo) da época Unix (meia-noite de 1 de janeiro de 1970):

  • Se o número inteiro for inferior a 31 536 000 000, é tratado como segundos.
  • Se o número inteiro for maior ou igual a 31 536 000 000 e inferior a 31 536 000 000 000, é tratado como milissegundos.
  • Se o número inteiro for maior ou igual a 31 536 000 000 000, é tratado como microssegundos.

Se receber dois argumentos, a função converte a primeira cadeia de caracteres num timestamp com base no formato especificado na segunda cadeia. Para personalizar o formato de data e hora no PlaidCloud Lakehouse, pode utilizar especificadores. Estes especificadores permitem definir o formato pretendido para os valores de data e hora. Para consultar a lista completa de especificadores suportados, veja Formatting Date and Time.

  • O timestamp de saída reflete o fuso horário do seu PlaidCloud Lakehouse.
  • A informação do fuso horário tem de estar incluída na cadeia de caracteres que pretende converter; caso contrário, é devolvido NULL.

Os formatos de data são expressos através da especificação strftime. Consulte a referência rápida.

Veja também: TO_DATE

func.to_timestamp(<expr>)
func.to_timestamp('2022-01-02T03:25:02.868894-07:00')
┌────────────────────────────────────────────────────────────────┐
│ func.to_timestamp('2022-01-02T03:25:02.868894-07:00') │
│ Timestamp │
├────────────────────────────────────────────────────────────────┤
│ 2022-01-02 10:25:02.868894 │
└────────────────────────────────────────────────────────────────┘
-- Convert a string or integer to a timestamp
TO_TIMESTAMP(<expr>)
-- Convert a string to a timestamp using the given pattern
TO_TIMESTAMP(<expr, expr>)

Devolve um timestamp no formato “YYYY-MM-DD hh:mm:ss.ffffff”. Se a cadeia de caracteres indicada corresponder a este formato mas não tiver a parte da hora, é automaticamente alargada para este padrão. O valor de preenchimento é 0.

SELECT TO_TIMESTAMP('2022-01-02T03:25:02.868894-07:00');
---
2022-01-02 10:25:02.868894
SELECT TO_TIMESTAMP('2022-01-02 02:00:11');
---
2022-01-02 02:00:11.000000
SELECT TO_TIMESTAMP('2022-01-02T02:00:22');
---
2022-01-02 02:00:22.000000
SELECT TO_TIMESTAMP('2022-01-02T01:12:00-07:00');
---
2022-01-02 08:12:00.000000
SELECT TO_TIMESTAMP('2022-01-02T01');
---
2022-01-02 01:00:00.000000
SELECT TO_TIMESTAMP(1);
---
1970-01-01 00:00:01.000000
SELECT TO_TIMESTAMP(-1);
---
1969-12-31 23:59:59.000000
SET GLOBAL timezone ='Japan';
SELECT TO_TIMESTAMP('2022 年 2 月 4 日、8 時 58 分 59 秒、タイムゾーン:+0900', '%Y年%m月%d日、%H時%M分%S秒、タイムゾーン:%z');
---
2022-02-04 08:58:59.000000
SET GLOBAL timezone ='America/Toronto';
SELECT TO_TIMESTAMP('2022 年 2 月 4 日、8 時 58 分 59 秒、タイムゾーン:+0900', '%Y年%m月%d日、%H時%M分%S秒、タイムゾーン:%z');
---
2022-02-03 18:58:59.000000