SQL выбор записей за текущий месяц - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть имя поля. Название учебника. Дата поля NewMonth
Подобные данные

TextBook     NewMonth
ABC          2020-01-01
HDS          2020-01-30 
ZXY          2020-02-15
FGD          2020-02-01
YTS          2020-04-02
HFH          2020-04-05 
EDD          2020-03-25

Моя цель выбрать записи с текущим месяцем (2020-04-XX)

TextBook     NewMonth
YTS          2020-04-02
HFH          2020-04-05

Мой запрос не работает. Может кто-нибудь исправить мой запрос. Спасибо

SELECT TextBook, NewMonth
   from  Store
   where NewMOnth >= Dateadd(Month, Datediff(Month, 0, DATEADD(m, -1, current_timestamp)), 0)

Я думаю -1 за текущий месяц, -2 за последние 2 месяца, -3 за последние 3 месяца и так же

1 Ответ

3 голосов
/ 09 апреля 2020

Моя цель выбрать записи с текущим месяцем (2020-04-XX)

Вот один из вариантов:

where NewMonth >= datefromparts(year(getdate()), month(getdate()), 1)

Если вам нужен верхний также:

where 
    NewMonth >= datefromparts(year(getdate()), month(getdate()), 1)
    and NewMonth < dateadd(month, 1, datefromparts(year(getdate()), month(getdate()), 1))

Если вы хотите предыдущий месяц:

where 
    NewMonth >= dateadd(month, -1, datefromparts(year(getdate()), month(getdate()), 1))
    and NewMonth < datefromparts(year(getdate()), month(getdate()), 1)

Или два месяца go:

where 
    NewMonth >= dateadd(month, -2, datefromparts(year(getdate()), month(getdate()), 1))
    and NewMonth < dateadd(month, -1, datefromparts(year(getdate()), month(getdate()), 1))
...