Domanda

I have two varchar2 date fields like clock_in and clock_out. I am inserting datetime by sysdate so the date looks like this:

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

Now I want to calculate the no of hours he work. Can you please help in this matter?

È stato utile?

Soluzione

You could just convert the data to dates using the to_date function, and then subtract the two values. Since subtracting dates returns a difference in days, you can simply multiply by 24 to get the difference in hours:

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

EDIT:
An even better solution would probably be to save clock_in and clock_out as date fields to begin with and avoid the hassle of converting in the query, but I'm not sure this is possible for the OP.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top