我有一张基本表格,可以记录员工的所有登录和退出。
我正在使用laravel作为我的后端,我正在努力如何在现场获得总小时数。
ID | in_time | out_time | in_date | out_date
1 | 21:22:49 | 21:46:05 | 2016-01-28 | 2016-01-28
2 | 08:12:12 | 14:12:01 | 2016-01-28 | 2016-01-28
到目前为止查看我的查询
$date1 = '2015-01-28';
$date2 = '2015-01-28';
$attendancehours = DB::table('staff_attendances')->whereBetween('in_date', array($date1, $date2))->where('id', $sID)
->get();
如何在该日期范围内输出网站上的总小时数?
答案 0 :(得分:1)
有两种方法可以解决这个问题
使用Carbon请参阅Difference
上的文档在他们的网站上有很多这方面的例子
假设您使用MySQL使用timestampdiff
SELECT TIMESTAMPDIFF(HOUR,' 2003-02-01',' 2003-05-01 12:05:55');
您可以使用Laravel中的RAW查询执行此操作,例如
$attendancehours = DB::select(
DB::RAW('TIMESTAMPDIFF(HOUR,CONCAT(in_date," ",in_time),CONCAT(out_date," ",out_time)'))->
table('staff_attendances')->
whereBetween('in_date', array($date1, $date2))->
where('id', $sID)
->get();
警告:我还没有对上述内容进行测试,但应该可以使用。