mysql,计算两个时间的时间差,并去除非工作日,包括节假日(上9点-12点,中午12点-下午18点)
时间: 2024-02-27 21:57:03 浏览: 225
mysql取得两个时间之间的差值
5星 · 资源好评率100%
如果您想计算两个时间的时间差,并排除非工作日,包括节假日,可以使用以下 SQL 语句:
```sql
SELECT TIMESTAMPDIFF(SECOND, start_time, end_time) -
(DATEDIFF(end_time, start_time) -
(SELECT COUNT(*) FROM holiday WHERE holiday_date BETWEEN start_time AND end_time)) *
TIME_TO_SEC('07:00:00') AS time_difference
FROM your_table
WHERE start_time < end_time;
```
其中,`start_time` 和 `end_time` 分别代表两个时间点,`your_table` 是您要查询的表名,`holiday` 表是您维护的节假日表,其中包含所有非工作日的日期。这个 SQL 语句会计算两个时间点之间的时间差,并且在计算时会排除掉非工作日,包括节假日,即每天的上午 9:00 到中午 12:00,下午 1:00 到下午 6:00。
注意,这个 SQL 语句假设您的工作时间是每天从早上 7:00 开始,到下午 6:00 结束,如果您的工作时间不同,请根据实际情况修改 SQL 语句中的时间段。此外,这个 SQL 语句假设您的时间跨度不超过一个月,如果您的时间跨度超过一个月,需要对这个 SQL 语句进行修改。
阅读全文