【发布时间】:2013-10-03 00:16:50
【问题描述】:
我想创建一个可以每周选择数据的存储过程。如何才能做到这一点?这是我的情况,员工每天填写时间表,每周三早上付款。所以星期三是一周的第一天。我想在网格视图中显示数据。在我的 gridview 中,gridview 中的每个页面都应该代表员工每周工作的时间。例如,如果有 7 条记录,今天是 2013 年 10 月 2 日,星期三,过去 7 天的每一天的每条记录,那么
最早的记录是在 2013 年 9 月 25 日输入的,
第二旧的记录于 2013 年 9 月 26 日输入
第三旧的记录于 2013 年 9 月 27 日进入 ...
第 7 长的记录于 2013 年 10 月 1 日进入
在我的网格视图中,我想在第 1 页显示仅从 9 月 25 日到 10 月 1 日的记录。这是一种按周对 gridview 页面进行分组的方式,周三是一周的第一天。我希望我能明白我的意思。
感谢您的帮助。
从评论中复制
以下是我如何根据工作日期确定一周的开始和结束日期:
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
【问题讨论】:
-
sql server 函数 date(dw, yourdate) 将为您提供星期几从星期日开始的星期几。添加或减去它以获得星期三为 0 和星期二为 6 的值。这将帮助您入门。
-
你好,丹,我可以得到星期几。如何每周对数据进行分组。 9 月 25 日至 10 月 1 日为一周。我可以在查询中指定 9 月 25 日到 10 月 1 日之间的工作日期。但这只会选择一周的数据。有没有办法可以逐周选择所有数据和分组。谢谢
-
以下是我如何根据工作日期确定一周的开始和结束日期: 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
-
大家好,我试图弄清楚这个的逻辑,这是我能想到的,但不知道如何编写查询。所以这里的逻辑是:今天是 2013 年 10 月 2 日 首先,我将 min(worked_date) 和 max(worked_date) 之间的周数作为整数并将其反映在我的 gridview 中。如果它是 gridview 上的第 2 页,我只想选择 date_worked 是从 9 月 25 日到 10 月 1 日的记录。如果是gridview上的第3页,我想选择9月18日到9月24日等等。谢谢。
-
有人可以帮帮我吗?非常感谢。