2012-01-24 6 views

ответ

3

Вы могли бы сделать что-то вроде этого:

IFNULL(@Year, DATEPART(year, Date)) = DATEPART(year, Date) 

IFNULL возвращает первый ненулевой аргумент. В этом случае запрос будет сравнивать @Year с DATEPART(year, Date) до тех пор, пока @Year не имеет значения. Если он равен NULL, то он сравнивает DATEPART(year, Date) с DATEPART(year, Date), что всегда будет правдой.

Редактировать: Отметьте, что DATEPART не является родным методом SQLite (OP ссылается на него так, что это может быть обычная вещь, которую он использует). Натуральным решением является использование strftime("%Y", Date) (спасибо @Jason!)

+0

Хорошо продуманный обходной путь. – everton

+0

DatePart не является функцией SQLite? – Jason

+0

@ Джейсон Хм, так и нет. Я просто использовал тот же метод, что использовал OP - это может быть то, что он написал для себя. – ean5533

Смежные вопросы