如何从 varchar2 字段计算小时数



我有两个varchar2日期字段,如clock_in和clock_out。我正在按系统日期插入日期时间,因此日期如下所示:

Clock_In Clock_Out12-28-13 08:00 上午 12-28-13 05:00 下午

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

您可以使用

to_date函数将数据转换为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 是否可行。

最新更新