如何从varchar2字段计算小时数?

时间:2013-12-28 17:51:57

标签: sql oracle oracle-sqldeveloper date-arithmetic

我有两个varchar2日期字段,如clock_in和clock_out。我正在通过sysdate插入datetime,所以日期如下所示:

Clock_In                   Clock_Out
12-28-13 08:00 AM          12-28-13 05:00 PM

现在我想计算他工作的小时数。你能帮忙解决这个问题吗?

1 个答案:

答案 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_inclock_out保存为date字段,并避免在查询中转换的麻烦,但我不确定这是否可行OP。