sel ect DATEADD(MONTH,-1,getdate()) 当前时间月份减掉1个月 比如当前时间是2021-5-8 结果为2021-4-8
sel ect datepart(year,getdate()) 获取当前时间年份
sel ect datepart(day,getdate()) 获取当前时间日期
sel ect datepart(month,getdate()) 获取当前时间月份
代码一:
sel ect * from {表彰} where datepart(year,[获奖时间]) =datepart(year,getdate()) and datepart(month,[获奖时间]) >= DATEPART(MONTH,DATEADD(MONTH,-1,getdate())) and datepart(month,[获奖时间]) <= datepart(month,getdate()) and datepart(day,[获奖时间]) = 25
该语句可以获取得到 大于并等于sql系统时间当年 且当月减1个月 小于并等于sql系统时间当月 且日期为25号的数据
如 获奖时间在 2021-4-25 2021-5-25 这两天的数据
代码二:
sel ect * from {表彰} where datepart(year,[获奖时间]) =datepart(year,getdate()) and datepart(month,[获奖时间]) >= DATEPART(MONTH,DATEADD(MONTH,-1,getdate())) and datepart(month,[获奖时间]) <= datepart(month,getdate()) and datepart(day,[获奖时间]) <= 25
该代码实现了从2021-4-1到2021-5-25这个区间的所有数据筛选
红色部分要怎么变更 才能实现2021-4-26直到2021-5-25之间的数据呢?前面年月都准确了 现在这个日期怎么确定为4月26.27.28.29.30.5月1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25这些区间值呢?
代码三:
sql语句
se lect * from {表彰} where 获奖时间 between '2021-4-26' and '2021-5-25'
这个可以实现4月26.27.28.29.30.5月1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25这些区间值
但是不想把 '2021-4-26' and '2021-5-25'这个部分写死 想让系统自动根据当前系统时间 自动变更为
2021-5-26 2021-6-25
2021-6-26 2021-7-25
……
上述代码有没有更简便的写法呢?实现2021-4-26至2021-5-25 这个区间的数据筛选:
[此贴子已经被作者于2021/5/8 23:42:10编辑过]