昨天特定时间 bigquery 的时间戳
Timestamp of yesterday at specific hour bigquery
我需要在 BigQuery 上安排一个查询,它将检索 24 小时前的一些数据。问题是,例如,如果它安排在早上 5 点,查询需要时间来执行(比方说 2.248 秒),所以昨天的数据从 5:00:00.000 到 5:00:02.248 将不会检索。我正在使用时间戳字段,并且我做了这样的事情:
SELECT *
FROM my_table
WHERE my_timestamp >= TIMESTAMP_SUB(current_timestamp(), INTERVAL 24 hour)
我想知道是否有办法在特定时间获取昨天的日期,所以即使由于执行而有一点差距,它仍然会从特定时间检索数据。
编辑:
我发现了一些东西:
SELECT *
FROM my_table
WHERE my_timestamp >= TIMESTAMP(DATE_SUB(current_date(), INTERVAL 1 DAY) )
AND my_timestamp < TIMESTAMP(current_date)
但是这个检索昨天在 00:00:00.000 到 23:59:59.999
之间
可以,但是有没有办法选择时间?
好的,我自己找到的,哈哈,也许它会帮助其他人寻找这个。
SELECT *
FROM my_table
WHERE my_timestamp >= TIMESTAMP_ADD(TIMESTAMP(DATE_SUB(current_date, INTERVAL 1 DAY)), INTERVAL 5 HOUR)
AND my_timestamp < TIMESTAMP_ADD(TIMESTAMP(current_date), INTERVAL 5 HOUR)
考虑以下最不冗长的方法
select *
from my_table
where my_timestamp >= timestamp(current_date - 1 + interval 5 hour)
and my_timestamp < timestamp(current_date + interval 5 hour)
我需要在 BigQuery 上安排一个查询,它将检索 24 小时前的一些数据。问题是,例如,如果它安排在早上 5 点,查询需要时间来执行(比方说 2.248 秒),所以昨天的数据从 5:00:00.000 到 5:00:02.248 将不会检索。我正在使用时间戳字段,并且我做了这样的事情:
SELECT *
FROM my_table
WHERE my_timestamp >= TIMESTAMP_SUB(current_timestamp(), INTERVAL 24 hour)
我想知道是否有办法在特定时间获取昨天的日期,所以即使由于执行而有一点差距,它仍然会从特定时间检索数据。
编辑: 我发现了一些东西:
SELECT *
FROM my_table
WHERE my_timestamp >= TIMESTAMP(DATE_SUB(current_date(), INTERVAL 1 DAY) )
AND my_timestamp < TIMESTAMP(current_date)
但是这个检索昨天在 00:00:00.000 到 23:59:59.999
之间可以,但是有没有办法选择时间?
好的,我自己找到的,哈哈,也许它会帮助其他人寻找这个。
SELECT *
FROM my_table
WHERE my_timestamp >= TIMESTAMP_ADD(TIMESTAMP(DATE_SUB(current_date, INTERVAL 1 DAY)), INTERVAL 5 HOUR)
AND my_timestamp < TIMESTAMP_ADD(TIMESTAMP(current_date), INTERVAL 5 HOUR)
考虑以下最不冗长的方法
select *
from my_table
where my_timestamp >= timestamp(current_date - 1 + interval 5 hour)
and my_timestamp < timestamp(current_date + interval 5 hour)