sql >> Database teknologi >  >> RDS >> Oracle

Få forskellen mellem to datoer både i måneder og dage i sql

vælg dt1, dt2, trunc( months_between(dt2,dt1) ) mths, dt2 - add_months( dt1, trunc(months_between(dt2,dt1)) ) daysfrom( vælg dato '2012-01-01' dt1 , dato '2012-03-25' dt2 fra dual union alle vælg dato '2012-01-01' dt1, dato '2013-01-01' dt2 fra dual union alle vælg dato '2012-01-01' dt1, dato '2012-01-01' dt2 fra dual union alle vælg dato '2012-02-28' dt1, dato '2012-03-01' dt2 fra dual union alle vælg dato '2013-02-28' dt1, dato '2013 -03-01' dt2 fra dual union alle vælg dato '2013-02-28' dt1, dato '2013-04-01' dt2 fra dual union alle vælg trunc(sysdate-1) dt1, sysdate fra dual) sample_data 

Resultater:

| DT1 | DT2 | MTHS | DAGE |------------------------------------------------ ----------------------------| 1. januar 2012 00:00:00 | 25. marts 2012 00:00:00 | 2 | 24 || 1. januar 2012 00:00:00 | 1. januar 2013 00:00:00 | 12 | 0 || 1. januar 2012 00:00:00 | 1. januar 2012 00:00:00 | 0 | 0 || 28. februar 2012 00:00:00 | 1. marts 2012 00:00:00 | 0 | 2 || 28. februar 2013 00:00:00 | 1. marts 2013 00:00:00 | 0 | 1 || 28. februar 2013 00:00:00 | 1. april 2013 00:00:00 | 1 | 1 || 14. august 2013 00:00:00 | 15. august 2013 05:47:26 | 0 | 1.241273 |

Link til test:SQLFiddle



  1. MySQL SELECT stigningstæller

  2. Postgresql UUID understøttet af Hibernate?

  3. Find alle tabeller, der indeholder kolonne med angivet navn - MS SQL Server

  4. Hvor fleksible/begrænsende er SQLite-kolonnetyper?