观
我有一台注册员工出勤率的指纹机, 但是有些员工有班次,其中一个班次发生在两天以上,以便员工在晚上11点(21/02/2018)办理登机手续,并在上午6点(22/02/2018)办理登机手续,这是下一个班次天。并且所有这些数据都在数据库中注册。
问题:
问题在于他们的转变是可变的,有时是员工 第二天上午11点来上班,第二天早上6点出门,有一段时间他下午3点到了同一天下午11点,所以当我查看数据库并看到晚上11点的记录时我不会我知道它是属于同一天还是前一天,我想为他们的经理做一份出勤报告。
请求:
我需要一个关于如何解决这个问题的建议,有类似情况的地方如何解决这个问题?
(UPDATE)
示例数据:
答案 0 :(得分:2)
此答案假设您的数据如下所示:
EmployeeId | check_in | check_out
1 | 2018-02-21 23:00:00 | 2018-02-22 06:00:00
您可以报告每位员工的统计信息以及与员工签入日期相对应的日期。如果您愿意,还可以报告签出日期。假设前者,您可以尝试此查询:
SELECT
EmployeeId,
CONVERT(date, check_in) AS check_in_date,
DATEDIFF(hh, check_in, check_out) AS shift_length_in_hours
FROM yourTable;