Java 计算/确定mysql中夜班的小时数

Java 计算/确定mysql中夜班的小时数,java,mysql,logic,Java,Mysql,Logic,以下是员工日志的表格: 我想要的是生成员工的入职时间和离职时间。像这样: 有人能帮我吗?任何添加的逻辑或算法都将被接受。这是一种方法。它可以在白天/晚上的任何班次工作,只要第一个min(datetime)代表中的 输出 +------+---------------------+---------------------+-------------+ | enno | time_out | time_in | No_of_hours | +--

以下是员工日志的表格:

我想要的是生成员工的入职时间和离职时间。像这样:


有人能帮我吗?任何添加的逻辑或算法都将被接受。

这是一种方法。它可以在白天/晚上的任何班次工作,只要第一个
min(datetime)
代表
中的

输出

+------+---------------------+---------------------+-------------+
| enno |      time_out       |       time_in       | No_of_hours |
+------+---------------------+---------------------+-------------+
|    6 | 16.05.2017 06:30:50 | 15.05.2017 18:30:50 |     12,0000 |
|    6 | 17.05.2017 05:30:50 | 16.05.2017 18:10:50 |     11,3333 |
+------+---------------------+---------------------+-------------+
说明:

    SELECT
    floor(@row1 := @row1 + 0.5) as day,
    t.*
    FROM Table4356 t,
     (SELECT @row1 := 0.5) r1
    order by t.datetime
此查询使用序列将
@row1
增量为
0.5
,因此您将得到
1.5 2.5
。现在,如果您仅使用
floor
获取的整数部分,您将生成类似
12
的序列。因此,此查询将为您提供此输出

+-----+------+---------------------+
| day | enno |      datetime       |
+-----+------+---------------------+
|   1 |    6 | 15.05.2017 18:30:50 |
|   1 |    6 | 16.05.2017 06:30:50 |
|   2 |    6 | 16.05.2017 18:10:50 |
|   2 |    6 | 17.05.2017 05:30:50 |
+-----+------+---------------------+

现在,您可以按
分组,并获得
最大
最小
时间。

一名员工的记录总是偶数,最短时间将是
输入
,随后将是
输出
等等,对吗?另外,以表格格式而不是图像格式提供数据,以便有人可以根据需要复制数据。好吧……让我们看看您尝试了什么。如果我使用每个员工的最小TimeIn和最大Timeout,它将仅基于每个日期或按日期分组。我需要的是夜班时间,从这一天到另一天。我已经完成了计算白班时间的工作,问题是员工上夜班的条件。好的。我想试试这件。如果我有问题,我会告诉你最新情况。谢谢,伙计:)嗨,乌萨夫。问题是,如果员工获得多个ins,它将给出如下输出:1 | 6 | 15.05.2017 18:30:50 1 | 6 | 15.05.2017 19:30:50 2 | 6 | 16.05.2017 06:30:50它将其他输入计算为第二天:(你给出的屏幕截图中没有。我在评论中也问了同样的问题,但你没有回答。这个解决方案适用于你给出的示例。如果你有不同的场景,请提出不同的问题。接受答案对你给出的示例有效,这样这个问题就可以结束了。我自己的观点是,回答像这个问题这样糟糕的问题会让你感到失望。)这是你的观点。我在这里学习新事物,我喜欢解决这种情况。我会继续尽我所能回答它们。干杯!
+-----+------+---------------------+
| day | enno |      datetime       |
+-----+------+---------------------+
|   1 |    6 | 15.05.2017 18:30:50 |
|   1 |    6 | 16.05.2017 06:30:50 |
|   2 |    6 | 16.05.2017 18:10:50 |
|   2 |    6 | 17.05.2017 05:30:50 |
+-----+------+---------------------+