This topic could be quite challenging for many Oracle database users but the solution is not too complicated at all. Let’s start with the use of The Oracle Date type for calculations and the first example is about subtracting. The output will be returned in number of days and that is suitable for MS Excel. Take a look at the following example:
SELECT (SYSDATE+1) - SYSDATE AS Days FROM DUAL;
The subtraction with the dates returned number 1 as we did mention above this is in day units. To show these in Excel just copy the number into a cell on a sheet as on the picture below.
The following output “01/01/1900 00:00” does not make much sense because Microsoft Excel replaces missing date values with the Excel default ones. For example the output year 1900 is default and we did not copied it over from Oracle database. To give more sense Orace date difference with Excel we should use time units as on the next example.
The SYSDATE functions can make to return different values with using additional Oracle Interval function. The first date has additional 10 minutes added to the current time as on the example below.
SELECT (SYSDATE + INTERVAL '10' MINUTE) - SYSDATE AS ORACE_DATEDIFF FROM DUAL;
The output is showing a 10 minutes difference in day units and the number is 0.006944444444444444444444444444444444444444. To make the number more readable in Excel follow the same steps above as we did with the different days. There is one exception the displaying units should be only time units. The steps with different time units are brought out as following too.
Copy the value into Excel cell as on the following picture.
In the forma cell set the category to Custom and type to “hh:mm:ss“.
On the picture below the 0.006944444444 number makes more sense in time units displaying the 10 minutes difference (00:10:00).
The example above can be used with all Oracle time difference units like seconds, minutes and hours. The MS Excel can represent the numbers more understandable way with just four easy steps.