Pular para o conteúdo
Lucas Lessa
Voltar para as notícias
SnowflakeGAImpacto: Médio

O novo tipo de dado PERIOD para intervalos temporais no Snowflake

O tipo de dado PERIOD armazena intervalos temporais delimitados com semântica semiaberta. Ele facilita gerenciar janelas de datas e horários diretamente no SQL.

O que mudou

O tipo de dado PERIOD armazena um intervalo temporal ancorado como um único valor, contendo um limite inicial inclusivo e um limite final exclusivo no formato [begin, end). Além disso, a atualização traz a capacidade de modificar ou limpar filtros em associações de funções de métrica de dados (DMF) usando a cláusula FILTER.

Para que serve

Imagine que você precisa gerenciar janelas de contratação de funcionários, vigências de contratos ou intervalos de validade de versões sem precisar lidar manualmente com colunas separadas de data inicial e final.

  • Criar colunas que armazenam intervalos de datas, horas ou timestamps.
  • Comparar períodos usando funções nativas de sobreposição, interseção e limites.
  • Aplicar verificações de qualidade de dados em subconjuntos específicos de linhas usando filtros em funções de métrica.

Como usar

Você pode definir uma coluna com o tipo PERIOD especificando seu elemento base e construir valores usando construtores ou literais.

CREATE OR REPLACE TABLE employment_windows (
  employee_id INTEGER,
  active_period PERIOD(DATE)
);

INSERT INTO employment_windows VALUES
  (1, PERIOD(DATE) '[2020-01-15, 2023-06-30)');

ALTER TABLE customer_data
  MODIFY DATA METRIC FUNCTION SNOWFLAKE.CORE.NULL_COUNT
    ON (email)
    FILTER (status = 'ACTIVE');

O que acontece nesse código:

  1. Cria uma tabela contendo uma coluna do tipo PERIOD(DATE).
  2. Insere um registro na tabela utilizando um literal tipado com limites semiabertos.
  3. Altera a associação de uma função de métrica de dados em uma tabela existente para avaliar apenas as linhas ativas.

Limitações e requisitos

O tipo PERIOD está disponível de forma geral (GA). Valores vazios não são permitidos (o início deve ser estritamente menor que o fim). Períodos ilimitados ou literais de infinito não são suportados, exigindo convenções como datas distantes no futuro. Colunas PERIOD não são suportadas em tabelas Iceberg gerenciadas.

Ver nota oficial do Snowflake

10.32 Release Notes (with behavior changes): Sep 05, 2026 - Sep 09, 2026

Resumo e explicação gerados por IA a partir da release note oficial. Em caso de dúvida, a documentação oficial da plataforma prevalece.

Relacionadas