У меня есть запланированный запрос с использованием параметра @run_date
в BigQuery.
SELECT
@run_date AS run_date,
timestamp,
event
FROM
`ops-data.usage.full_user_dataset`
WHERE
DATE(timestamp) < @run_date
timestamp
имеет тип TIMESTAMP
Я не могу запланировать его - расписание Параметр выделен серым цветом в новом пользовательском интерфейсе и недоступен в пользовательском интерфейсе classi c (в нем указано, что требуется действительный SQL). Если я попытаюсь запустить запрос, я получаю сообщение об ошибке Undeclared parameter 'run_date' is used assuming different types (DATE vs INT64) at [2:3]
Попробовав разные вещи, я смог запланировать запрос ниже. Идея заключалась в том, чтобы заставить BigQuery рассматривать @run_date как дату, не меняя ее.
SELECT
DATE_SUB(@run_date, INTERVAL 0 DAY) AS run_date,
timestamp,
event
FROM
`ops-data.usage.full_user_dataset`
WHERE
DATE(timestamp) < @run_date
Почему возникает эта ошибка и почему исправление работает?