Pular para o conteúdo

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

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

  • Se o inteiro for menor que 31.536.000.000, ele é tratado como segundos.
  • Se o inteiro for maior ou igual a 31.536.000.000 e menor que 31.536.000.000.000, ele é tratado como milissegundos.
  • Se o inteiro for maior ou igual a 31.536.000.000.000, ele é tratado como microssegundos.

Com dois argumentos, a função converte a primeira string em um timestamp com base no formato especificado na segunda string. Para personalizar o formato de data e hora no PlaidCloud Lakehouse, você pode usar especificadores. Eles permitem definir o formato desejado para valores de data e hora. Para ver a lista completa de especificadores compatíveis, consulte Formatação de data e hora.

  • O timestamp de saída reflete o fuso horário do seu PlaidCloud Lakehouse.
  • As informações de fuso horário devem estar incluídas na string que você deseja converter; caso contrário, NULL será retornado.

Os formatos de data são expressos usando a 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>)

Retorna um timestamp no formato “YYYY-MM-DD hh:mm:ss.ffffff”. Se a string fornecida corresponder a esse formato, mas não tiver a parte de hora, ela é estendida automaticamente para esse 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