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

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

Проблем:

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

Пример:

В 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(day, departure, arrival) AS date_difference,
  DATEDIFF(day, departure, arrival) + 1 AS days_inclusive
FROM travel;

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

id заминаване пристигане разлика_дата дни
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

Дискусия:

За да намерите разликата между датите, използвайте DATEDIFF(datepart, startdate, enddate) функция. datepart аргументът дефинира частта от датата/датата и часа, в която искате да изразите разликата. Стойността му може да бъде year , quarter , month , day , minute , и т.н. В този пример искате да изразите разликата в дни, така че първият аргумент е ден. Другите два аргумента са датата, от която започвате да броите, и датата, на която спирате да броите – В този случай departure и arrival , съответно.

В повечето случаи това, което наистина искате, е броят на дните от първата дата до втората дата включително . След това трябва да добавите 1 ден към разликата в дните:DATEDIFF(day, departure, arrival) + 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. Как да изтриете колона в таблицата

  2. NULL сложности – Част 3, Липсващи стандартни функции и алтернативи на T-SQL

  3. Въздействие върху производителността на различни техники за обработка на грешки

  4. StarJoinInfo в планове за изпълнение

  5. ScaleGrid стартира поддръжка на Google Cloud Platform (GCP) за хостинг на управлявани бази данни