簡體   English   中英

天數按周計算

[英]Days group by week in month

我希望按周顯示一個月內的日期,這就是我所做的。

select date(subdate(table1.date1, interval (dayofweek(table1.date1)-2)day))  as OverWeek,count(table1.Id)
from table1
where YEAR(table1.date1 ) = YEAR(CURDATE())
AND MONTHNAME(table1.date1) = "June"
GROUP BY OverWeek

但對於六月,它顯示我7月1日。 我想因為7月1日,這是一個星期一,但我不知道如何解決這個問題。

先感謝您

以六月為例

+------------+
| dt         |
+------------+
| 2013-06-01 |
| 2013-06-08 |
| 2013-06-15|
| 2013-06-22 |
| 2013-06-29 |
+------------+

和2013-06-01組2013-06-01截至2013-06-07和2013-06-08組2013-06-08截至2013-06-14 ....

考慮這個數據集......

SELECT * FROM calendar WHERE year(dt) = 2013 AND MONTH(dt) = 6;
+------------+
| dt         |
+------------+
| 2013-06-01 |
| 2013-06-02 |
| 2013-06-03 |
| 2013-06-04 |
| 2013-06-05 |
| 2013-06-06 |
| 2013-06-07 |
| 2013-06-08 |
| 2013-06-09 |
| 2013-06-10 |
| 2013-06-11 |
| 2013-06-12 |
| 2013-06-13 |
| 2013-06-14 |
| 2013-06-15 |
| 2013-06-16 |
| 2013-06-17 |
| 2013-06-18 |
| 2013-06-19 |
| 2013-06-20 |
| 2013-06-21 |
| 2013-06-22 |
| 2013-06-23 |
| 2013-06-24 |
| 2013-06-25 |
| 2013-06-26 |
| 2013-06-27 |
| 2013-06-28 |
| 2013-06-29 |
| 2013-06-30 |
+------------+

......像這樣的黑客可能有用......

SELECT dt FROM calendar WHERE year(dt) = 2013 AND MONTH(dt) = 6 AND MOD(DAY(dt),7)=1 ;

SELECT COUNT(table1.Id),OverWeek FROM(SELECT *,其中YEAR(table1.date1)= YEAR(CURDATE())和MONTHNAME(table1.date1)=“June”FROM Orders)o GROUP BY OverWeek;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM