如何比较MySql中除周末(周六、周日)外的两个日期
我只想在MySql查询中查找周一到周五的工作日的两个日期(dateStart、dateEnd)之间的差异 下面是我的查询,它比较了两个日期,并给出了一周或更长时间后的结果:如何比较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
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;