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

Как да изчислим разликата между две дати в MySQL

Проблем:

Имате две колони от типа дата и искате да изчислите разликата между тях.

Пример:

В travel таблица, има три колони:id , departure и arrival . Искате да изчислите разликата между arrival и departure , или броя на дните от arrival до тръгване включително.

travel таблицата изглежда така:

id заминаване пристигане
1 25.03.2018 05.04.2018
2 12.09.2019 23.09.2019
3 14.07.2018 14.07.2018
4 2018-01-05 08.01.2018

Решение:

SELECT
  id,
  departure,
  arrival,
  DATEDIFF(arrival, departure) AS date_difference,
  DATEDIFF(arrival, departure) + 1 AS days_inclusive
FROM travel;

Резултатът е:

id заминаване пристигане разлика_дата days_inclusive
1 25.03.2018 05.04.2018 11 12
2 12.09.2019 23.09.2019 11 12
3 14.07.2018 14.07.2018 0 1
4 2018-01-05 08.01.2018 3 4

Дискусия:

За да преброите разликата между датите в MySQL, използвайте DATEDIFF(enddate, startdate) функция. Разликата между startdate и enddate се изразява в дни. В този случай enddate е arrival и startdate е departure .

В повечето случаи обаче това, което наистина искате, е броят на дните от първата дата до втората дата включително . Трябва да добавите 1 ден към разликата:DATEDIFF(arrival, departure) + 1 .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намерите броя на дните между две дати в MySQL

  2. Как да изтриете цялата база данни на MySQL

  3. Изберете mysql заявка между дата?

  4. Как да решим проблема с кодирането на символи в MySQL?

  5. Динамично зареждане на данни при превъртане на div с помощта на php, mysql, jquery и ajax