如何直接复制已有表结构或者表&数据
1.复制表结构
create table table_name_new like table_name_old;
2.复制表结构&数据
create table table_name_new as (select * from table_name_old where 查询条件);
如何计算两个时间之间时间差、工作时间差、跨天工作时间差值
以下以 MySQL 数据库为例进行说明。
一、使用 TIMEDIFF 函数计算简单时间差
首先,可以使用 TIMEDIFF 函数计算两个时间的时间差,但这只是普通的时间差,不考虑工作时间。
SELECT TIMEDIFF(end_time, start_time) AS simple_time_diff;
二、考虑工作时间差的计算方法
定义工作日和工作时间范围,假设工作日为周一至周五,每天工作时间为 9:00 至 18:00。计算总分钟数:
将时间转换为分钟数进行计算。可以使用 HOUR 和 MINUTE 函数分别获取小时和分钟数,然后计算总分钟数。
SELECT
-- 开始时间的总分钟数
HOUR(start_time) * 60 + MINUTE(start_time) AS start_total_minutes,
-- 结束时间的总分钟数
HOUR(end_time) * 60 + MINUTE(end_time) AS end_total_minutes;
- 处理跨天情况
如果结束时间小于开始时间,说明跨天了,需要将结束时间加上一天的总分钟数(24 * 60 = 1440 分钟)。
SELECT
start_total_minutes,
IF(end_total_minutes <