2016-04-16 146 views
1

我有日期列和存儲的日期列表我想每個星期六使用mysql獲取每個星期六到星期四的數據我該怎麼做?如何在每個星期五使用mysql獲取每個星期六到星期四的數據

我試着用此查詢,但不知道如何使用我的要求

SET DATEFIRST 1 -- Define beginning of week as Monday 
SELECT [...] 
AND WorkDate >= dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate())) 
AND WorkDate < dateadd(day, 8-datepart(dw, getdate()), CONVERT(date,getdate())) 
+0

您可以使用觸發器爲 –

+0

我只是想詢問怎麼寫查詢我不知道如何得到寫入mysql查詢邏輯如果寫一個邏輯來獲得星期六到星期四,所以我可以運行一個星期五的cron作業 – Sandy

+0

因此,這裏有兩個問題,第一個是獲取數據坐在thurs第二個是每個星期五執行查詢 –

回答

1

您可以參考此查詢獲取數據從週六至週四做。

1 Day= 86400 seconds //所以你可以根據一天中的範圍

注設定的時間間隔:這是邏輯而已,你可以管理你的查詢。 MySQL的已經有功能,如DAYOFWEEK(), DATE(NOW())

我闖民宅此鏈接爲進一步瞭解詳情:Date & Time Function in MySQL

SELECT 
    satwk_beg + INTERVAL 0 second sat_beg, 
    satwk_beg + INTERVAL 518399 second thu_end 
    FROM (SELECT (DATE(NOW()) - INTERVAL daysbacktothursday DAY) satwk_beg 
    FROM (SELECT SUBSTR('1234560',wkndx,1) daysbacktothursday 
    FROM (SELECT DAYOFWEEK(dt) wkndx FROM (SELECT DATE(NOW()) dt) AAAA) AAA) AA) A; 

只是執行上面的查詢,並檢查你會得到輸出從週六至週四。

這裏是其它周的範圍內,

  • (SELECT SUBSTR('6',wkndx,1)確實開始週一的一週結束太陽
  • (SELECT SUBSTR('56',wkndx,1)做一週開始週二結束週一
  • (SELECT SUBSTR('4560123',wkndx,1)確實開始週三結束週二
  • 一週
  • (SELECT SUBSTR('3456012',wkndx,1)開始的星期四周末週三
  • (SELECT SUBSTR('2345601',wkndx,1)確實開始週五的一週結束週四
  • (SELECT SUBSTR('1234560',wkndx,1)做一週開始週六結束週五
  • (SELECT SUBSTR('',wkndx,1)確實周開始太陽結束週六
+0

有點困惑你的查詢我有一個列名格式29-03-2016日期我困惑機智h名稱wkndx id它的列名?什麼是dt? – Sandy

+0

這是僅適用於虛擬數據的邏輯,您可以根據您的數據庫管理此查詢。和MySQL的所有功能,你可以得到更多的細節,這http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html首先複製上面的查詢和在MySQL中執行,然後看到結果並通過手動調試來了解發生了什麼...... –

相關問題