Difference between dates or DATEDIFF

To get the difference between two date columns we can use DATEDIFF function in SQL Server and in Oracle we can just subtract two columns as shown below

 

SQL Server DATEDIFF ( DATEPART , STARTDATE , ENDDATE )

Example:

Select Datediff(mm,column1,column2)

 

Above script will output difference in months, so based on what we specify as a first parameter (datepart) to function we will get different results, below are the list of parameters which can be used to get desired format.

 

“datepart” parameters:

year

 yy, yyyy

quarter

 qq, q

month

 mm, m

Day of year

 dy, y

day

 dd, d

week

 wk, ww

weekday

 dw, w

hour

 hh

minute

 mi, n

second

 ss, s

millisecond

 ms

MICROSECOND

 mcs

nanosecond

 ns

 

Oracle

In Oracle as shown below we need to write a little complex script to achieve the desired results as shown below

 

Select trunc(column1-column2) as Day,

           trunc(mod((column1-column2)*24,24)) as Hour,

           trunc(mod((column1-column2)*24*60,60)) as Minutes,

           trunc(mod((column1-column2)*24*60*60)) as Seconds

From Dual;

 

If we would like to find difference in months we can use MONTHS_BETWEEN(column1, column2) function as shown below

 

SELECT

MONTHS_BETWEEN(SYSDATE, SYSDATE+30)

from   DUAL;

 

Thank you for reading this article, check out my other SQL Server vs. Oracle posts.