sql >> Database >  >> RDS >> Database

Hoe het verschil tussen twee datums in T-SQL te berekenen

Probleem:

U heeft twee kolommen van het datumtype en u wilt het verschil daartussen berekenen.

Voorbeeld:

In de travel tabel, zijn er drie kolommen:id , departure , en arrival . U wilt het verschil berekenen tussen arrival en departure , of het aantal dagen vanaf arrival inclusief vertrek.

De travel tabel ziet er als volgt uit:

id vertrek aankomst
1 25-03-2018 05-04-2018
2 2019-09-12 23-09-2019
3 2018-07-14 2018-07-14
4 05-01-2018 2018-01-08

Oplossing:

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

Het resultaat is:

id vertrek aankomst date_difference dagen
1 25-03-2018 05-04-2018 11 12
2 2019-09-12 23-09-2019 11 12
3 2018-07-14 2018-07-14 0 1
4 05-01-2018 2018-01-08 3 4

Discussie:

Om het verschil tussen datums te vinden, gebruikt u de DATEDIFF(datepart, startdate, enddate) functie. Het datepart argument definieert het deel van de datum/datumtijd waarin u het verschil wilt uitdrukken. De waarde kan year zijn , quarter , month , day , minute , etc. In dit voorbeeld wil je het verschil in dagen uitdrukken, dus het eerste argument is dag. De twee andere argumenten zijn de datum waarop u begint met tellen en de datum waarop u stopt met tellen. In dit geval departure en arrival , respectievelijk.

In de meeste gevallen is wat je echt wilt het aantal dagen vanaf de eerste date tot de tweede date inclusief . Dan moet je 1 dag bij het verschil in dagen optellen:DATEDIFF(day, departure, arrival) + 1 .


  1. Hoe pg_stat_activity te gebruiken?

  2. Een offline-first native Android-app ontwikkelen

  3. Oracle sql-zelfstudie:Basis SQL-instructie

  4. oracle sql:update indien bestaat, anders invoegen