如何使用mysql在每个星期五获取每周六到周四的数据

时间:2016-04-16 05:44:56

标签: 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()))

1 个答案:

答案 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)从周日开始周六开始