如何比较MySql中的两个日期,包括周末(SAT,SUN)

时间:2017-10-10 07:51:27

标签: mysql sql-date-functions

我想找到两个日期(dateStart,dateEnd)之间的差异仅适用于MySql查询中Mon-Fri的工作日。

这是我的查询,它比较两个日期,并在一周或更长时间后给出结果:

SELECT * FROM TABLE_NAME
WHERE status = 'Updated'
           AND
DATE_ADD(dateModified, INTERVAL 1 WEEK) >= NOW();

2 个答案:

答案 0 :(得分:1)

SELECT *
FROM TABLE_NAME
WHERE status = 'Updated'
  AND DATE_FORMAT(dateModified, '%w') IN (0, 6)
  AND DATE_ADD(dateModified, INTERVAL 1 WEEK) >= NOW();

请参阅 Official MySQL documentation了解更多信息。

答案 1 :(得分:0)

创建一个函数,如下所示:

system/library/cart.php

然后像这样查询:

 CREATE FUNCTION TOTAL_WEEKDAYS(date1 DATE, date2 DATE)
  RETURNS INT
  RETURN ABS(DATEDIFF(date2, date1)) + 1
 - ABS(DATEDIFF(ADDDATE(date2, INTERVAL 1 - DAYOFWEEK(date2) DAY),
                ADDDATE(date1, INTERVAL 1 - DAYOFWEEK(date1) DAY))) / 7 * 2
 - (DAYOFWEEK(IF(date1 < date2, date1, date2)) = 1)
 - (DAYOFWEEK(IF(date1 > date2, date1, date2)) = 7);

像魅力一样!