sql >> Databáze >  >> RDS >> SQLite

Jak vypočítat rozdíl mezi dvěma daty v SQLite

Problém:

Máte dva sloupce typu datum a chcete vypočítat rozdíl mezi nimi.

Příklad:

V travel tabulka má tři sloupce:id , departure a arrival . Chcete vypočítat rozdíl mezi arrival a departure a počet dní od příjezdu do odjezdu včetně .

travel tabulka vypadá takto:

id odjezd příjezd
1 25. 3. 2018 2018-04-05
2 2019-09-12 23. 9. 2019
3 2018-07-14 2018-07-14
4 2018-01-05 2018-01-08

Řešení:

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

Výsledek je:

id odjezd příjezd rozdíl data dny
1 25. 3. 2018 2018-04-05 11 12
2 2019-09-12 23. 9. 2019 11 12
3 2018-07-14 2018-07-14 0 1
4 2018-01-05 2018-01-08 3 4

Diskuse:

Chcete-li spočítat rozdíl mezi daty, použijte JULIANDAY() funkce, která počítá počet dní od poledne v Greenwichi 24. listopadu 4714 př. Kr. Používáte JULIANDAY(date) pro každé ze dvou dat; jednoduše je odečtěte pomocí znaménka minus (-):

JULIANDAY(arrival) - JULIANDAY(departure)

Ve většině případů skutečně chcete počet dní od prvního do druhého rande včetně . Potom je třeba k rozdílu ve dnech přidat 1 den:

JULIANDAY(arrival) - JULIANDAY(departure) + 1.


  1. načíst vícenásobné sloupce seskupit podle data intervall

  2. Chyba PHP, MySQL:Počet sloupců neodpovídá počtu hodnot na řádku 1

  3. Pomocí OBJECTPROPERTY() zjistěte, zda je objekt CHECK omezením na serveru SQL Server

  4. Získejte názvy tabulek pomocí příkazu SELECT v MySQL