如何取得當前週數據直到今天的日期?如何使用查詢獲取當前星期的數據直到今天的日期?
示例 - 本週從2017-08-01開始至2017-08-07和今天的日期爲2017-08-03。我想使用查詢從2017-08-01到2017-08-03獲取數據。
This is query -
SELECT *
FROM user_data
WHERE YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)
如何取得當前週數據直到今天的日期?如何使用查詢獲取當前星期的數據直到今天的日期?
示例 - 本週從2017-08-01開始至2017-08-07和今天的日期爲2017-08-03。我想使用查詢從2017-08-01到2017-08-03獲取數據。
This is query -
SELECT *
FROM user_data
WHERE YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)
我解決了我的問題。
SELECT *
FROM current_week
WHERE YEARWEEK(`dt`, 1) = YEARWEEK(CURDATE(), 1) and dt <= curdate() order by dt
這工作正常。
這個在日曆年的最後和第幾周變得棘手。
首先你需要決定你的星期是星期天還是星期一開始。這是基於您的國家管轄區的商業慣例。在北美,通常是星期天。在歐洲有時是星期一。
您需要一個計算基於日期的日曆周的第一個時刻的表達式。
這是從週日開始的這種表達。
FROM_DAYS(TO_DAYS(CURDATE()) -MOD(TO_DAYS(CURDATE()) -1, 7))
這是星期一開始的星期一。 (注意-2
)
FROM_DAYS(TO_DAYS(CURDATE()) -MOD(TO_DAYS(CURDATE()) -2, 7))
現在你可以從你的表是在本週選擇的東西。
SELECT whatever, whatever
FROM user_data
WHERE `date` >= FROM_DAYS(TO_DAYS(CURDATE()) -MOD(TO_DAYS(CURDATE()) -1, 7))
如果你想之前的本週使用這種
SELECT whatever, whatever
FROM user_data
WHERE `date` >= FROM_DAYS(TO_DAYS(CURDATE()) -MOD(TO_DAYS(CURDATE()) -1, 7)) - INTERVAL 7 DAY
AND `date` < FROM_DAYS(TO_DAYS(CURDATE()) -MOD(TO_DAYS(CURDATE()) -1, 7))
感謝您的回覆,此查詢返回所有當前星期的日期。 –
SELECT * FROM current_week WHERE YEARWEEK(dt,1)= YEARWEEK(CURDATE(),1)和dt <= curdate()這個查詢正在工作。 –
'其中datecol> =「從上週的東西2017-08-01''? –
@GordonLinoff,謝謝你的回覆。在這種情況下,我需要獲取星期的開始日期並在查詢中傳遞它。沒有約會可以通過嗎? –
@GordonLinoff,它返回2017-08-01之後的所有數據,不是當前星期。 –