SQL Server SQL选择当前月份的记录

vlju58qv  于 2022-11-28  发布在  其他
关注(0)|答案(2)|浏览(155)

我有一个字段名为“教科书日期”字段名为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,依此类推

pftdvrlh

pftdvrlh1#

我的目标是选择当前月份的记录(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)

还是两个月前:

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

3gtaxfhh2#

对于2020-04年,您可以使用以下方法:

WHERE CONCAT(YEAR(NewMonth),MONTH(NewMonth)) = CONCAT('2020','04')

要选择当前月份的记录:

WHERE CONCAT(YEAR(NewMonth),MONTH(NewMonth)) = CONCAT(now(),now())

相关问题