Как узнать, находятся ли данные в текущем месяце SQL Server?

У меня есть столбец Ticket_Date который находится в формате YYYY-MM-DD HH:MI:SS

Я хочу проверить, находится ли Ticket_date в текущем месяце.

Пока у меня есть:

  Ticket_date >= '2015-04-01' and Ticket_date < '2015-04-30' 

но мне нужно, чтобы он работал с текущим месяцем, а не с жестким кодом

  YEAR(Ticket_date) = YEAR(getdate()) and MONTH(Ticket_date) = MONTH(getdate()) 

но я бы также сохранил текущую дату в переменной, чтобы гарантировать, какой результат getdate() не изменяется при выполнении длинного запроса в полночь

 declare @today datetime = getdate() ... YEAR(Ticket_date) = YEAR(@today) and MONTH(Ticket_date) = MONTH(@today) 

Как насчет этого?

 where ticket_date >= cast(getdate() - day(getdate) + 1 as date) and ticket_date < dateadd(month, 1, cast(getdate() - day(getdate) + 1 as date) ) 

Эта формулировка не имеет функций в ticket_date , поэтому SQL Server может использовать индекс в столбце, если это необходимо.

 MONTH(Ticket_date) = MONTH(GETDATE()) AND YEAR(Ticket_date) = YEAR(GETDATE()) 
  • Как получить неделю в SQL с помощью правила календаря?
  • Как найти дату в SQL?
  • MS SQL сравнить даты?
  • Как конвертировать неделю (200851) в дату (2008-12-27)?
  • SQL Server 2008: SQL-запрос с использованием IF в столбцах
  • Создает все даты между двумя датами, хранящимися в таблице.
  • Найти тот же день предыдущего года, указанный в текущем году Дата в SQL Server
  • Справка SQL Query: преобразование дат в нетривиальном направлении
  • SQL Преобразование строки MMM.YY на сегодняшний день
  • Как обновлять данные в sql-сервере от локального до универсального времени
  • Как получить разницу по дате, присоединив две таблицы?
  • Давайте будем гением компьютера.