Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Consultando últimos minutos em um campo TIMESTAMP

Olá pessoal!

Estou trabalhando em um projeto que utiliza BigQuery e estou precisando coletar os dados em um intervalo de 10 minutos, ou seja, sempre que minha query rodar ela precisa me trazer os últimos 10 minutos de dados.

Normalmente eu trataria isso da seguinte forma no SQL Server por exemplo: date between dateadd(min,-10, GETDATE()) and dateadd(CURRENT_DATE())

No BigQuery já tentei fazer de diversas formas (usando DATERANGE, DATE_ADD, TIMESTAMP_SUB), porém, sem sucesso.

Alguém sabe como poderia tratar isso ou a melhor forma de isso no BigQuery?

Obrigado!

1 resposta
solução!

Oi

No BigQuery, você pode obter os últimos 10 minutos de dados usando funções de data e hora. A abordagem mais comum envolve o uso da função TIMESTAMP_SUB ou TIMESTAMP_ADD junto com a função CURRENT_TIMESTAMP().

Aqui está um exemplo de como você pode escrever uma consulta para obter os dados dos últimos 10 minutos no BigQuery:

SELECT *
FROM `seu_projeto.seu_dataset.sua_tabela`
WHERE timestamp_column >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 10 MINUTE)
  AND timestamp_column <= CURRENT_TIMESTAMP();

Certifique-se de substituir seu_projeto.seu_dataset.sua_tabela pelo caminho completo para a sua tabela e timestamp_column pelo nome da coluna de data/hora na sua tabela.

Esta consulta irá recuperar os registros em que a coluna de data/hora (timestamp_column) está dentro do intervalo dos últimos 10 minutos em relação ao momento em que a consulta é executada.

Se você estiver usando a função TIMESTAMP_ADD, a consulta seria semelhante:

SELECT *
FROM `seu_projeto.seu_dataset.sua_tabela`
WHERE timestamp_column >= TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL -10 MINUTE)
  AND timestamp_column <= CURRENT_TIMESTAMP();

Ambas as consultas devem fornecer os resultados desejados para obter os últimos 10 minutos de dados no BigQuery. Certifique-se de ajustar os detalhes conforme necessário para o seu ambiente específico.