Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何比较MySql中除周末(周六、周日)外的两个日期_Mysql_Sql Date Functions - Fatal编程技术网

如何比较MySql中除周末(周六、周日)外的两个日期

如何比较MySql中除周末(周六、周日)外的两个日期,mysql,sql-date-functions,Mysql,Sql Date Functions,我只想在MySql查询中查找周一到周五的工作日的两个日期(dateStart、dateEnd)之间的差异 下面是我的查询,它比较了两个日期,并给出了一周或更长时间后的结果: SELECT * FROM TABLE_NAME WHERE status = 'Updated' AND DATE_ADD(dateModified, INTERVAL 1 WEEK) >= NOW(); 请参阅 有关详细信息。创建一个函数,如下所示: CREATE FUNCTION TOT

我只想在MySql查询中查找周一到周五的工作日的两个日期(dateStart、dateEnd)之间的差异

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

SELECT * FROM TABLE_NAME
WHERE status = 'Updated'
           AND
DATE_ADD(dateModified, INTERVAL 1 WEEK) >= NOW();
请参阅
有关详细信息。

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

 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);

工作起来很有魅力

我不清楚你在问什么。我没有看到你在任何地方比较工作日。请使用示例数据和预期输出进行更新。比较工作日是我的问题@TimBiegeleisen。但是我找到了解决办法,我创建了一个函数。
 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);
SELECT * FROM TABLE_NAME WHERE status = 'Updated'
                     AND 
 TOTAL_WEEKDAYS(dateModified, NOW()) >=7;