use*_*397 0 sql t-sql sql-server where-clause date-arithmetic
我有一个字段名称教科书日期字段名称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
Run Code Online (Sandbox Code Playgroud)
我的目标是选择当月的记录 (2020-04-XX)
TextBook NewMonth
YTS 2020-04-02
HFH 2020-04-05
Run Code Online (Sandbox Code Playgroud)
我的查询并不起作用。有人可以纠正我的疑问吗?谢谢
SELECT TextBook, NewMonth
from Store
where NewMOnth >= Dateadd(Month, Datediff(Month, 0, DATEADD(m, -1, current_timestamp)), 0)
Run Code Online (Sandbox Code Playgroud)
我认为-1代表当前月份,-2代表过去2个月,-3代表过去3个月等等
我的目标是选择当月的记录 (2020-04-XX)
这是一种选择:
where NewMonth >= datefromparts(year(getdate()), month(getdate()), 1)
Run Code Online (Sandbox Code Playgroud)
如果您也需要上限:
where
NewMonth >= datefromparts(year(getdate()), month(getdate()), 1)
and NewMonth < dateadd(month, 1, datefromparts(year(getdate()), month(getdate()), 1))
Run Code Online (Sandbox Code Playgroud)
如果您想要上个月:
where
NewMonth >= dateadd(month, -1, datefromparts(year(getdate()), month(getdate()), 1))
and NewMonth < datefromparts(year(getdate()), month(getdate()), 1)
Run Code Online (Sandbox Code Playgroud)
或者两个月前:
where
NewMonth >= dateadd(month, -2, datefromparts(year(getdate()), month(getdate()), 1))
and NewMonth < dateadd(month, -1, datefromparts(year(getdate()), month(getdate()), 1))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6613 次 |
| 最近记录: |