Вы можете сделать что-то вроде этого:
IFNULL(@Year, DATEPART(year, Date)) = DATEPART(year, Date)
IFNULL возвращает свой первый ненулевой аргумент. В этом случае запрос будет сравнивать @Year
с DATEPART(year, Date)
, пока @Year
не равно нулю. Если он НУЛЬ, тогда он будет сравнивать DATEPART(year, Date)
с DATEPART(year, Date)
, что всегда будет истинно.
Редактировать: Обратите внимание, что DATEPART
не является нативным методом SQLite (OP ссылался на него, так что это может быть пользовательская вещь, которую он / она использует). Нативное решение - использовать strftime("%Y", Date)
(Спасибо @Jason!)