Наше приложение Django только что перешло с MySQL на PostgreSQL, и мы находимся в процессе обновления наших пользовательских запросов, чтобы использовать правильный синтаксис. Эти запросы сохраняются / выполняются с помощью Django-SQL-Explorer.
У меня есть запрос, который для простоты выглядит так:
SELECT * FROM table t WHERE t.scheduled_start_date BETWEEN $$from_date$$ AND $$to_date$$
Вышеприведенный запрос работает, но я хотел бы установить значения по умолчанию на сегодня и сегодня + 30 соответственно.
Я пробовал следующие предложения WHERE безрезультатно:
Работает с введенным пользователемдата, по умолчанию генерирует синтаксическую ошибку
WHERE t.scheduled_start_date BETWEEN date('$$from_date:CURRENT_DATE$$') AND date('$$to_date:CURRENT_DATE + INTERVAL \'30 DAY\'$$')
Ошибка с использованием значений по умолчанию :syntax error at or near "30" LINE 28: ...urrent_date') AND date('current_date + interval \'30 day\'') ^
Настройки по умолчанию работают правильно, но введенные пользователем даты не:
WHERE t.scheduled_start_date BETWEEN date($$from_date:CURRENT_DATE$$) AND date($$to_date:CURRENT_DATE + INTERVAL '30 DAY'$$)
Ошибка с датами пользователя :function date(integer) does not exist LINE 28: WHERE t.scheduled_start_date BETWEEN date(2019-09-30) AND da... ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Сообщение о приведении имеет смысл для меня, так как пользователь вводит строковые данные, однако мне кажется, что синтаксис, правильный при преобразовании в DATE, не может быть правильным, но только при переопределении значения по умолчанию.
Любые предложения будут полезны. Спасибо!