sql >> Databáze >  >> RDS >> Mysql

Příklady TIMESTAMPDIFF() – MySQL

MySQL TIMESTAMPDIFF() Funkce se používá k nalezení rozdílu mezi dvěma výrazy datum nebo datum a čas. Musíte zadat dvě hodnoty datum/datum a čas a také jednotku, kterou chcete použít k určení rozdílu (např. den , měsíc , atd). TIMESTAMPDIFF() funkce pak vrátí rozdíl v zadané jednotce.

Syntaxe

Nejprve se podívejme, jak probíhá syntaxe:

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

Zde unit je jednotka pro vyjádření rozdílu (např. den, měsíc, rok atd.). datetime_expr1 je první hodnota data/datetime a datetime_expr2 je druhý.

Tato funkce odečte datetime_expr1 z datetime_expr2 a vrátí výsledek v unit s. Výsledek je vrácen jako celé číslo.

Platné jednotky

unit argument může být kterýkoli z následujících:

  • MICROSECOND
  •  SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

Příklad 1 – Rozdíl ve dnech

Zde je příklad demonstrující základní použití této funkce. Zde porovnáme dva výrazy data a vrátíme rozdíl mezi nimi ve dnech.

SELECT 
  TIMESTAMPDIFF(DAY,'2022-02-01','2022-02-21')
  AS 'Difference in Days';

Výsledek:

+--------------------+
| Difference in Days |
+--------------------+
|                 20 |
+--------------------+

Příklad 2 – Rozdíl v hodinách

V tomto příkladu porovnáváme stejné hodnoty jako v předchozím příkladu, kromě toho, že zde vracíme rozdíl v hodinách .

SELECT 
  TIMESTAMPDIFF(HOUR,'2022-02-01','2022-02-21')
  AS 'Difference in Hours';

Výsledek:

+---------------------+
| Difference in Hours |
+---------------------+
|                 480 |
+---------------------+

Příklad 3 – Příklad „datum a čas“

Zde je příklad, který vrátí rozdíl v minutách. V tomto případě porovnáme dvě hodnoty data a času (oproti pouze hodnotám data jako v předchozích příkladech).

SELECT 
  TIMESTAMPDIFF(MINUTE,'2022-02-01 10:30:27','2022-02-01 10:45:27')
  AS 'Difference in Minutes';

Výsledek:

+-----------------------+
| Difference in Minutes |
+-----------------------+
|                    15 |
+-----------------------+

Příklad 4 – zlomky sekund

Pokud potřebujete, můžete přejít až na mikrosekundu (6 číslic).

SELECT 
  TIMESTAMPDIFF(MICROSECOND,'2022-02-01 10:30:27.000000','2022-02-01 10:30:27.123456') 
  AS 'Difference in Microseconds';

Výsledek:

+----------------------------+
| Difference in Microseconds |
+----------------------------+
|                     123456 |
+----------------------------+

Příklad 5 – Negativní výsledky

Jak by se dalo očekávat, pokud je první argument data/času větší než druhý, výsledkem bude záporné celé číslo.

SELECT 
  TIMESTAMPDIFF(DAY,'2022-02-21','2022-02-01')
  AS 'Difference in Days';

Výsledek:

+--------------------+
| Difference in Days |
+--------------------+
|                -20 |
+--------------------+


  1. Příkaz SQLite REPLACE

  2. Jak přidat sloupec, pokud neexistuje na PostgreSQL?

  3. Oracle ekvivalent Postgres' DISTINCT ON?

  4. Funkce spánku v ORACLE