Mysql
 sql >> Database >  >> RDS >> Mysql

TIMESTAMPDIFF() Esempi – MySQL

Il TIMESTAMPDIFF() di MySQL La funzione viene utilizzata per trovare la differenza tra due espressioni di data o data e ora. È necessario trasmettere i due valori di data/data e ora, nonché l'unità da utilizzare per determinare la differenza (ad es. giorno , mese , eccetera). Il TIMESTAMPDIFF() funzione restituirà quindi la differenza nell'unità specificata.

Sintassi

Innanzitutto, ecco come funziona la sintassi:

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

Qui, unit è l'unità da utilizzare per esprimere la differenza (es. giorno, mese, anno, ecc.). datetime_expr1 è il primo valore di data/data e ora e datetime_expr2 è il secondo.

Questa funzione sottrae datetime_expr1 da datetime_expr2 e restituisce il risultato in unit S. Il risultato viene restituito come numero intero.

Unità valide

L'unit l'argomento può essere uno dei seguenti:

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

Esempio 1 – Differenza in giorni

Ecco un esempio per dimostrare l'utilizzo di base di questa funzione. Qui confrontiamo due espressioni di data e restituiamo la differenza tra loro in giorni.

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

Risultato:

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

Esempio 2 – Differenza in ore

In questo esempio confrontiamo gli stessi valori dell'esempio precedente, tranne che qui restituiamo la differenza in ore .

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

Risultato:

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

Esempio 3:un esempio di "data e ora"

Ecco un esempio che restituisce la differenza in minuti. In questo caso, confrontiamo due valori datetime (al contrario dei soli valori date come negli esempi precedenti).

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

Risultato:

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

Esempio 4 – Secondi frazionari

Se necessario, puoi scendere fino al microsecondo (6 cifre).

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

Risultato:

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

Esempio 5 – Risultati negativi

Come ci si aspetterebbe, se il primo argomento data/ora è maggiore del secondo, il risultato sarà un numero intero negativo.

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

Risultato:

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