查询连续十二周的数据(自定义本周五到下周四算一个周)

fantasykakaxi 2019-11-05 02:59:41
怎么写存储过程 。因为不是最近七天的 是固定好业务周期的。本周五到下周四算一个周。
求大神帮忙
...全文
126 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fantasykakaxi 2019-11-07
  • 打赏
  • 举报
回复
引用 4 楼 RINK_1 的回复:
[quote=引用 2 楼 fantasykakaxi 的回复:] [quote=引用 1 楼 RINK_1 的回复:] 把具体日期统一往后加2天,再转换成周数试试,即周五相当于周日,周六相当于周一,以此类推。
我这样行不:通过判断当天是周几 然后找到本周开始的第一天 第一天减七 第一天减七 到 第一天减十四 第一天减十四 到 第一天减二十一 是不是就可以了[/quote] 查询时,难道第一天必然是周五,即从一周的第一天开始,同时查询的时间段必然是完整的12周? 如果是这样,那把这12周的每天减最开始的一天,然后用差减1后再除以7,根据商来分组,商相同的就是同一周[/quote] 嗯嗯 谢谢老哥 你说这个 我懂意思 但我写不出来 我自己写了一个 @date = select case when DATEPART(dw, getDate()) <= 5 then dateadd(day,-DATEPART(dw, getDate())-1, getDate()) else dateadd(day,6 -DATEPART(dw, getDate()) , getDate()) end (这个是根据当前时间推算这周的第一天:周五) 然后下面写查询的时候 用了最笨的方法 把时间 between date-1 and date-7 算出来的 可能有些笨重繁琐复杂 但是我自己能理解 谢谢您
fantasykakaxi 2019-11-07
  • 打赏
  • 举报
回复
引用 3 楼 Hello World, 的回复:
是不是要按周分组统计? 如果是的话通过set dayfirst来确定一周从哪天开始即可。 至于要从哪天开始统计到哪天这个容易计算的
我搞定了 我写了个存储过程 @date = select case when DATEPART(dw, getDate()) <= 5 then dateadd(day,-DATEPART(dw, getDate())-1, getDate()) else dateadd(day,6 -DATEPART(dw, getDate()) , getDate()) end 然后下面写查询的时候 用了最笨的方法 把时间 between date-1 and date-7 算出来的
RINK_1 2019-11-05
  • 打赏
  • 举报
回复
引用 2 楼 fantasykakaxi 的回复:
[quote=引用 1 楼 RINK_1 的回复:] 把具体日期统一往后加2天,再转换成周数试试,即周五相当于周日,周六相当于周一,以此类推。
我这样行不:通过判断当天是周几 然后找到本周开始的第一天 第一天减七 第一天减七 到 第一天减十四 第一天减十四 到 第一天减二十一 是不是就可以了[/quote] 查询时,难道第一天必然是周五,即从一周的第一天开始,同时查询的时间段必然是完整的12周? 如果是这样,那把这12周的每天减最开始的一天,然后用差减1后再除以7,根据商来分组,商相同的就是同一周
Hello World, 2019-11-05
  • 打赏
  • 举报
回复
是不是要按周分组统计?
如果是的话通过set dayfirst来确定一周从哪天开始即可。
至于要从哪天开始统计到哪天这个容易计算的
fantasykakaxi 2019-11-05
  • 打赏
  • 举报
回复
引用 1 楼 RINK_1 的回复:
把具体日期统一往后加2天,再转换成周数试试,即周五相当于周日,周六相当于周一,以此类推。
我这样行不:通过判断当天是周几 然后找到本周开始的第一天 第一天减七 第一天减七 到 第一天减十四 第一天减十四 到 第一天减二十一 是不是就可以了
RINK_1 2019-11-05
  • 打赏
  • 举报
回复
把具体日期统一往后加2天,再转换成周数试试,即周五相当于周日,周六相当于周一,以此类推。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧