У меня есть таблица со столбцом CreatedDatetime. Этот столбец находится в часовом поясе UTC (значения выглядят так:
20.12.2020 01:00:00 UTC). Мне нужно получить все строки, где дата сегодня, но в европейском/московском часовом поясе, что составляет +3 часа. Вместо
SELECT TIMESTAMP_ADD(TIMESTAMP_TRUNC(CreatedDatetime, HOUR), INTERVAL 3 HOUR) AS date_hour_msk
FROM table_name
WHERE DATE(CreatedDatetime) = CURRENT_DATE('Etc/GMT')
Мне нужно что-то вроде этого:
WHERE CreatedDatetime >= 'yesterday 21:00:00' AND Created <= 'today 21:00:00'.
В Bigquery вы можете преобразовать временную метку UTC в локальный часовой пояс следующим образом:
TIMESTAMP(CreatedDatetime, 'Europe/Moscow')
Предположительно, вы хотите что-то вроде:
select TIMESTAMP(CreatedDatetime, 'Europe/Moscow') as local_time
from table_name
where DATE(CreatedDatetime, 'Europe/Moscow') = CURRENT_DATE('Europe/Moscow')
Вам нужно что-то вроде этого
WHERE DATE(CreatedDatetime, "+03:00") = CURRENT_DATE("+03:00")