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 | +--------------------+