I have a table with CreatedDatetime column. This column is in UTC timezone (Values look like this:
2020-12-20 01:00:00 UTC). I need to get all rows where date is Today, but in Europe/Moscow timezone, which is +3 hours. Instead
x
SELECT TIMESTAMP_ADD(TIMESTAMP_TRUNC(CreatedDatetime, HOUR), INTERVAL 3 HOUR) AS date_hour_msk
FROM table_name
WHERE DATE(CreatedDatetime) = CURRENT_DATE('Etc/GMT')
I need something like this:
WHERE CreatedDatetime >= 'yesterday 21:00:00' AND Created <= 'today 21:00:00'.
Advertisement
Answer
In Bigquery, you can convert an UTC timestamp to a local timezone like this:
TIMESTAMP(CreatedDatetime, 'Europe/Moscow')
Presumably, you want something like:
select TIMESTAMP(CreatedDatetime, 'Europe/Moscow') as local_time
from table_name
where DATE(CreatedDatetime, 'Europe/Moscow') = CURRENT_DATE('Europe/Moscow')