mysql-workbench - 在mysql中拆分夜班时间并将工作时间分成两部分
问题描述
我想拆分轮班时间。夜班时间(22:01:00(第 1 天) - 06:00:00(第 2 天)) 我有 2 列 start_date 和 end_Date,假设一个人从 23:55:00 开始并在 1:20:00 结束时再次开始在 1:30:00 和 05:50:00 结束,像这样有多个记录。
示例 1
我可以知道如何将工作时间分成两部分 day-1 - (23:55:00) - (23:59:59) (4/5 分钟) (23:55:00 - 1:20:00 之间) day-2 - (12:00:00) - (06:00:00)(其余工作时间)
还有一个例子(2)
一个人从晚上 9 点开始工作,应该像这样分开 晚上 9 点 - 晚上 10 点(下午) 晚上 10 点 - 晚上 11.59 点(第 1 天) 上午 12 点 - 早上 6 点(第 2 天)
我试过这个例如1
select
start_dt as start_date,
end_dt as end_date,
ucase(rep) as assignee,
timediff(end_dt,start_dt) as total_time_spent,
(case
when
CONVERT(start_dt,TIME) > convert('22:01:00',TIME)
and convert(end_dt,TIME) <= CONVERT('11:59:59',TIME)
then
timediff(end_dt,start_dt)
end ) as time_spent_day_1 ,
(case
when
CONVERT(start_dt,TIME) > convert('12:00:00',TIME)
-- and convert(end_dt,TIME) <= CONVERT('05:59:59',TIME)
then
timediff(end_dt,start_dt)
end) as time_spent_day_2
from table_1
WHERE CONVERT(start_dt,TIME) > convert('22:01:00',TIME)
and CONVERT(DATE_ADD(end_dt, INTERVAL 1 DAY),TIME) <= convert('05:59:59',TIME)
and ucase(rep) like '%xyz%' ```
解决方案
推荐阅读
- python - datetime 与 date 的时间差为 0 秒
- azure - 使用 Azure 托管的 Godaddy 域电子邮件帐户
- c - 为什么我必须在等待特定信号之前设置 pthread_sigmask
- tabulator - 是否可以在不将其附加到 DOM 的情况下创建 Tabulator 表?
- phonegap - 麦克风的设备权限
- javascript - 老虎机代码不起作用但没有错误消息?
- c# - 如何在 C# 中将数据添加到字典?
- python - 如何通过python regEx从文本文件中搜索href?
- odoo - 在 Odoo 10 中覆盖 JavaScript 函数
- r - 如何计算glmnet cox家族的R中的生存函数?