我有两个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_in
和clock_out
保存为date
字段,并避免在查询中进行转换的麻烦,但我不确定这对于 OP 是否可行。