我有日期列,其中存储的日期列表我希望每周五使用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 :(得分:1)
您可以参考此查询以获取星期六到星期四的数据。
1 Day= 86400 seconds
//因此您可以根据日期范围设置INTERVAL
注意:这只是逻辑,您可以管理您的查询。 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('6012345',wkndx,1)
从星期一结束太阳开始一周(SELECT SUBSTR('5601234',wkndx,1)
从Tue结束Mon开始一周(SELECT SUBSTR('4560123',wkndx,1)
从周三结束Tue (SELECT SUBSTR('3456012',wkndx,1)
本周开始于星期四结束(SELECT SUBSTR('2345601',wkndx,1)
开始星期五结束星期四(SELECT SUBSTR('1234560',wkndx,1)
本周开始周六结束周五(SELECT SUBSTR('0123456',wkndx,1)
从周日开始周六开始