嗨,我一直在研究一个简单的数据集,比如
no Date time_in time_out extrahours
1 2018-05-01 00:00:00.0000000 09:00:00.0000000 18:50:00.0000000 0
1 2018-05-02 00:00:00.0000000 08:00:00.0000000 20:00:00.0000000 3
1 2018-05-03 00:00:00.0000000 09:50:00.0000000 19:50:00.0000000 1
1 2018-05-04 00:00:00.0000000 07:00:00.0000000 17:45:00.0000000 1
1 2018-05-05 00:00:00.0000000 09:15:00.0000000 13:50:00.0000000 -5
1 2018-05-06 00:00:00.0000000 08:45:00.0000000 23:55:00.0000000 6
1 2018-05-07 00:00:00.0000000 12:00:00.0000000 23:00:00.0000000 2
1 2018-05-08 00:00:00.0000000 02:30:00.0000000 23:55:00.0000000 12
1 2018-05-09 00:00:00.0000000 10:50:00.0000000 19:50:00.0000000 0
1 2018-05-10 00:00:00.0000000 08:36:00.0000000 19:50:00.0000000 2
我被要求把额外的时间限制在2小时之内,也就是说,周末(星期六或星期天)额外的时间必须得到补偿
加班时间0 0 0 0 0 0 0(星期六)2 2如果他在星期六和星期天工作9小时,那么加班时间会被处理,否则他们会得到补偿。
请花点时间回答我的问题谢谢。
1条答案
按热度按时间zte4gxcn1#
你需要做的是
CASE WHEN
,以查看您的小时数是否可以除以2,只要大于0,就应该是2。然后你把你的小时数除以2得到你的两个不同的小时数。你可以使用mysql
HOUR()
功能来实现这一点。完成后,使用
SEC_TO_TIME()
函数并相应地相乘,得到你想要的时间格式,60分钟,然后60小时。我用了
MINUTE()
函数来获取分钟数,并继续使用与小时数相同的方法。我想出了这样的办法:
工作sql fiddle
如果需要一个带秒的额外字段,只需使用相同的方法,并使用
SECOND()
功能。这个答案主要是关于你的另一个被标记为重复的问题。