我花了很多时间试图弄清楚如何做到这一点,但无法做到。所以请帮帮我。
我有这个数据:
ID employee_id worked_date start_time finish_time
1 1 2013-09-25 09:00:00 17:30:00
2 1 2013-09-26 07:00:00 17:00:00
8 1 2013-10-01 09:00:00 17:00:00
9 1 2013-10-04 09:00:00 17:00:00
12 1 2013-10-07 09:00:00 17:00:00
13 1 2013-10-10 09:00:00 17:00:00
14 1 2013-10-11 09:00:00 17:00:00
我一周的第一天是星期三。基准日期是 2013 年 9 月 25 日,即星期三。我需要能够动态获取 weekStart 和 weekEnd 。例如,根据我上面的数据,2013-09-25 到 2013-10-11 之间有三周。我首先使用最新的工作日期订购我的数据。如果用户请求第 3 周,则 weekStart 应为 2013-09-25,weekEnd 应为 2013-10-01。如果用户请求 week2,则 weekStart 应该是 2013-10-02 到 2013-10-08 等等。
参数 week 将动态传递。谢谢你的帮助。
这是我在请求的第 3 周时想要达到的结果:
ID employee_id worked_date start_time finish_time weekStart weekEnd
1 1 2013-09-25 09:00:00 17:30:00 2013-09-25 2013-10-01
2 1 2013-09-26 07:00:00 17:00:00 2013-09-25 2013-10-01
8 1 2013-10-01 09:00:00 17:00:00 2013-09-25 2013-10-01
使用此查询将为我提供每条记录的 weekStart 和 weekEnd
SELECT *, dateadd(week, datediff(day,'20000105',worked_date) / 7, '20000105') AS WeekStart ,
dateadd(week, datediff(day,'20000105',worked_date) / 7, '20000105') + 6 AS WeekEnd
FROM Timesheet
但我不想要这个。我只想要用户请求的特定一周。