我有查詢返回我一個月的一週,但我想要的日期範圍與此。如何更改我的查詢以獲取本週的日期範圍。這是我的查詢:如何獲取月份的星期以及日期範圍在MYSQL
select
date,
FLOOR((DAYOFMONTH(date) - 1)/7) + 1 AS week,
Concat('Week ',FLOOR((DAYOFMONTH(date) - 1)/7) + 1) AS weekname
from table_test
where DATE_FORMAT(date,'%m/%Y')='".$monYear."'"
group by week
這裏變量$ monYear等於「10/2017」。
一週從星期日開始到週六和每月的第一個星期從01 開始因此,輸出應該是這樣的:1
周:2107年1月10日 - 7月10日/ 2017
第2周:2017年8月10日 - 14/10/2017
第3周:15/10/2017 - 21/10/2017
第4周:22/10/2017 - 28/10/2017
5周:29/10/2017 - 31/10/2017
好了,所以我想這一點,對'09/2017' 年的幾乎正確的,但它給了我錯誤的結果。它給我20170896作爲第一週的開始日期(96是錯誤的),它也不會給我之間的斜線。
select date-dayofweek(date)+1 as startDay,
date+ 7 - dayofweek(date) as endDate,
FLOOR((DAYOFMONTH(date) - 1)/7) + 1 AS week,
from table_test where DATE_FORMAT(date,'%m/%Y')='09/2017' group by week
請[編輯]你的問題來定義該月的*周*根據您的業務規則,請運行星期日至星期六週,或週一至星期日?包含每個月的第一天的一週是否被認爲是該月的第一週? –
仍在掙扎,請參閱:[爲什麼我應該提供一個用於我認爲是非常簡單的SQL查詢的MCVE?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-一個-mcve爲什麼似乎對我來說是一個非常簡單的SQL查詢) – Strawberry