Что вызывает «Ошибка при выполнении запроса: 100035 (22007): временная метка ‘d_yesterday’ не распознана» на панели мониторинга redash?

#sql #snowflake-cloud-data-platform #redash

#sql #snowflake-cloud-data-platform #redash

Вопрос:

В экземпляре приложения Redash, поддерживаемом базой данных Snowflake, у меня настроена панель мониторинга с несколькими запросами, каждый из которых принимает параметр типа date named startDate .

Каждый из моих запросов закодирован для применения выбранной даты панели мониторинга с помощью предложений WHERE, таких как:

 WHERE created_at >= '{{ startDate }}'
  

В большинстве случаев это работает нормально.

Однако, когда на моей панели управления для startDate параметра я выбираю специальное значение Yesterday (вместо конкретной даты), некоторые (но не все) мои запросы отображают ошибку вместо отображения каких-либо данных: Error running query: 100035 (22007): Timestamp 'd_yesterday' is not recognized .

Что означает эта ошибка и как я могу ее исправить?

Ответ №1:

Эта проблема возникает, когда в затронутых запросах параметр по-прежнему имеет тип по умолчанию text вместо того, чтобы быть измененным на type date .

Ошибка возникает из-за того, что выбор специального значения даты «Вчера» на панели мониторинга работает только с параметрами типа даты, а не с параметрами типа текста.

Изменение типа параметра на date в каждом из отдельных запросов, сохранение этих изменений и затем обновление панели мониторинга должны устранить проблему.

Комментарии:

1. и, говоря о сообщении об ошибке, ожидается строка, которая может быть проанализирована как дата, таким образом, тип ‘ГГГГ-ММ-ДД’, а ‘d_yesterday` не соответствует формату даты по умолчанию для сеанса / пользователя.