WQINF.COM

工作、学习、生活

2019年5月 - 日志归档

SQL以周一为基准,查询条件为本周的数据

由于系统固定查询条件中,日期型数据在按周作为条件进行过滤时,默认按照西方以周日为第一天的规则,但在国内,一般是以周一为第一天。那么我们在查询的固定条件进行过滤时,需要进行一定的调整: 首先是获取本周的周一的起始时间: SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) 显示的格式为:2019-06-17 00:00:00.000,我们需要将其格式化为"年-月-日"的格式: SELECT CONVERT(varchar(100), DATEADD(wk, DATEDIFF(wk,0,getdate()), 0), 23) 即显示的格式为:2019-06-17 然后获取"本周的周一的起始时间"加上7天之后的结束时间: SELECT dateadd(day,7,CONVERT(varchar(100), DATEADD(wk, DATEDIFF(wk,0,getdate()), 0), 23)) 显示的格式依然为:2019-06-24 00:00:00.000,同样将其格式化为"年-月-日"的格式: SELECT CONVERT(varchar(100),dateadd(day,7,CONVERT(varchar(100), DATEADD(wk, DATEDIFF(wk,0,getdate()), 0), 23)), 23) 即显示的格式为:2019-06-24 然后根据实际的需求进行配置条件字段即可: 完整的案例: SELECT * FROM uf_yzgzap WHERE modedatacreatedate>=(SELECT CONVERT(varchar(100), DATEADD(wk, DATEDIFF(wk,0,getdate()), 0), 23)) and modedatacreatedate<=(SELECT CONVERT(varchar(100),dateadd(day,7,CONVERT(varchar(100), DATEADD(wk, DATEDIFF(wk,0,getdate()), 0), 23)), 23)) 我们只需要取出WHERE 条件,并将其日期字段modedatacreatedate修改为实际的日期字段即可(注意,必须为“年-月-日”的格式数据)。

05 / 23