常用SQL语句汇总(不断更新)

如何直接复制已有表结构或者表&数据

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 <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值