Oracle
 sql >> база данни >  >> RDS >> Oracle

Вземете разликата между две дати в месеци и дни в sql

изберете dt1, dt2, trunc( months_between(dt2,dt1) ) mths, dt2 - add_months(dt1, trunc(months_between(dt2,dt1)) ) daysfrom( изберете дата '2012-01-01 , дата '2012-03-25' dt2 от двоен съюз всички изберете дата '2012-01-01' dt1, дата '2013-01-01' dt2 от двоен съюз всички изберете дата '2012-01-01' dt1, дата '2012-01-01' dt2 от двоен съюз всички изберете дата '2012-02-28' dt1, дата '2012-03-01' dt2 от двоен съюз всички изберете дата '2013-02-28' dt1, дата '2013 -03-01' dt2 от двоен съюз всички изберете дата '2013-02-28' dt1, дата '2013-04-01' dt2 от двойно обединение всички изберете trunc(sysdate-1) dt1, sysdate от dual) sample_data 

Резултати:

<предварителен код>| DT1 | DT2 | MTHS | ДНИ |------------------------------------------------ ----------------------------| 01 януари 2012 г. 00:00:00 | 25 март 2012 г. 00:00:00 | 2 | 24 || 01 януари 2012 г. 00:00:00 | 01 януари 2013 г. 00:00:00 | 12 | 0 || 01 януари 2012 г. 00:00:00 | 01 януари 2012 г. 00:00:00 | 0 | 0 || 28 февруари 2012 г. 00:00:00 | 01 март 2012 г. 00:00:00 | 0 | 2 || 28 февруари 2013 г. 00:00:00 | 01 март 2013 г. 00:00:00 | 0 | 1 || 28 февруари 2013 г. 00:00:00 | 01 април 2013 г. 00:00:00 | 1 | 1 || 14 август 2013 г. 00:00:00 | 15 август 2013 г. 05:47:26 | 0 | 1.241273 |

Връзка към тест:SQLFiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Получаване на допълнителни редове - След присъединяване към 3-те маси с помощта на Left Join

  2. Обработка на изключения за пакетно вмъкване на JDBC

  3. Как да покажа работещи процеси в Oracle DB?

  4. Клауза BETWEEN срещу <=И>=

  5. Javascript дата към sql обект дата