我有两个varchar2日期字段,如clock_in和clock_out。我正在通过sysdate插入datetime,所以日期如下所示:
Clock_In Clock_Out 12-28-13 08:00 AM 12-28-13 05:00 PM
现在我想计算他工作的小时数。你能帮忙解决这个问题吗?
答案 0 :(得分:4)
您可以使用date
函数将数据转换为to_date
,然后减去这两个值。由于减去日期会返回天之间的差异,因此您可以简单地乘以24以获得以小时为单位的差异:
SELECT (TO_DATE(clock_out, 'DD-MM-YY HH:MI AM') -
TO_DATE(clock_in, 'DD-MM-YY HH:MI AM')) * 24 AS hours_worked
FROM my_table
编辑:
一个更好的解决方案可能是将clock_in
和clock_out
保存为date
字段,并避免在查询中转换的麻烦,但我不确定这是否可行OP。