11
A
回答
19
首先,您需要使用DATEFIRST设置Saturday
作为第一天你的一周。值表示星期一,值表示星期六。然后,您可以使用DATEPART与week
或wk
或ww
对您的日期列值进行分组。
您可以在2012-01-08
正在weekno 因为2012-01-07分组的日期2012-01-07
值和下面的示例数据看到的是一个周六。 任何年份的1月1日总是第一周的一年。
Click here to view the output in SQL Fiddle.
脚本:
CREATE TABLE weekdays
(
datevalue datetime NOT NULL
, numericvalue INT NOT NULL
);
INSERT INTO weekdays (datevalue, numericvalue) VALUES
('2012-01-01', 4),
('2012-01-02', 1),
('2012-01-07', 2),
('2012-01-08', 8),
('2012-01-14', 3),
('2012-01-15', 2),
('2012-01-19', 6);
SET DATEFIRST 6;
SELECT DATEPART(wk, datevalue) weekno
, SUM(numericvalue) totalvalue
FROM weekdays
GROUP BY DATEPART(wk, datevalue)
输出:
weekno totalvalue
------ ----------
1 5
2 10
3 11
1
OK,未经检验的,因为我没有SQL服务器得心应手,虽然直接翻译成MySQL的似乎按预期工作:
SELECT *
FROM (SELECT your_date_field,
DATEADD(D,
-(DATEPART(DW,your_date_field) MOD 7), your_date_field) AS saturday
FROM your_table)
GROUP BY saturday
ORDER BY your_date_field
1
经本真正的问题,但是这防止其可以从被设置来防止额外的表和DATEFIRST 。这是我使用已知的日期方法和正在检索的通话记录的答案。
19000101 =周一 - 总是容易记住,因此设置周六19000106
SELECT MIN(dateadd(day, datediff(
day,'19000106', CallRecords.CallStartTime)/7*7, '19000106'))
AS CallStartTime
FROM CallRecords
GROUP BY DATEDIFF(day,'19000106', CallRecords.CallStartTime)/7
测试的SQL Server和SQL Server Compact 4.0上
2
您应该使用DATEPART
功能:
SELECT DATEPART(wk, Date), SUM(Value)
FROM Table
GROUP BY DATEPART(wk, Date)
希望这可以帮助你。
相关问题
- 1. 如何查看星期六/星期日?
- 2. 星期六开始星期的星期数
- 3. 显示整个星期的开始日期为星期六
- 4. 开始星期日的第一周的星期几,星期六的星期的最后一天结束
- 5. 从星期一开始,星期几不是星期一?
- 6. SQL Server 2012-星期日期星期六到星期五
- 7. PHP星期一星期一和星期六日期问题
- 8. PHP数组与星期六星期六至星期五
- 9. 计算星期一到星期六的星期几
- 10. 如何按星期分组日期?
- 11. 作为星期一或星期日influxdb使星期开始
- 12. Python2:在指定日期范围内检索星期日 - 星期六星期开始/结束日期
- 13. 星期几字段
- 14. Bootstrap - datesDisabled数组日期和星期日和星期六
- 15. 忽略星期六和星期日
- 16. 按星期几计算订单,将星期六和星期日计数添加到星期五
- 17. 如何明确星期日和星期六的日期数?
- 18. 星期数和星期几
- 19. 如何从星期日开始几周?
- 20. 如何获得星期一开始的特定日期的星期几?
- 21. 获取本周的开始日期和结束日期(星期一从星期一开始,星期日结束)
- 22. 星期三开始的星期几的SQL组合
- 23. 如何按星期分组否,并获取Sqlite中星期数的开始日期和结束日期?
- 24. Django的日期字段得到一个星期就像星期日星期一
- 25. 日期星期几在Groovy
- 26. 按星期,月份,日期分组
- 27. MdDatePicker在星期一开始的星期
- 28. 星期一从星期一开始JavaScript
- 29. 星期五开始“星期五”,php
- 30. 创建周函数,而不是星期一开始的星期几,星期一
+1努力。不能告诉你它是否有效,但是因为Siva的答案并不那么棒。 –
这真的是我唯一真正嫉妒其他dbms的东西......在查询的其他部分使用select子句中的别名的能力。 –