Cosa è datediff in mysql

Cosa è datediff in mysql
MySQL è uno dei database più popolari al mondo. Indipendentemente dal settore, MySQL è ampiamente adottato per le sue caratteristiche. È un RDBMS open source (sistema di gestione del database relazionale). I dati sono organizzati in tabelle che possono essere correlate tra loro. Incorpora SQL per eseguire varie azioni di database.

In questa guida, controlleremo una di queste funzionalità. Dimostrerà come utilizzare la funzione datediff in mysql.

The Datediff () in SQL

La funzione DateDiff è disponibile come parte del linguaggio delle query SQL. In MySQL, la funzione datediff () prende due date come input, calcola la differenza e restituisce il numero di date tra le due date.

Ecco come appare la struttura di base della funzione.

$ Datediff (espressione_1, espressione_2)

Qui,

  • espressione_1: il primo appuntamento
  • espressione_2: il secondo appuntamento

L'espressione può essere di uno dei seguenti formati.

  • tempo
  • data
  • appuntamento
  • DateTime2
  • piccolodatetime
  • DateTimeOffset

In SQL standard, tuttavia, datediff () è leggermente diverso. Supporta inoltre un parametro aggiuntivo per specificare la parte della data su cui lavorare.

$ Datediff (date_part, espressione_1, espressione_2)

Qui,

Date_part: descrive su quale parte della data dovrebbe calcolare la funzione. Per impostazione predefinita, il valore è impostato su giorni. Tuttavia, supporta anche valori aggiuntivi. Questi valori Date_Part hanno anche abbreviazioni adeguate.

  • mese ("mm" o "m")
  • anno ("yy" o "yyyy")
  • Quartiere ("QQ" o "Q")
  • giorno ("dd" o "d")
  • Settimana ("WK" o "WW"
  • dayofyear ("dy" o "y")
  • ora ("hh")
  • minuto ("mi" o "m")
  • secondo ("SS" o "S")
  • millisecond ("ms")
  • Microsecondo ("MCS")
  • nanosecondo ("NS")

La funzione datediff () ha anche una limitazione di portata. Il valore calcolato della differenza di data deve trovarsi nell'intervallo di interi (-2.147.483.647 a 2.147.483.648).

Utilizzo di datediff ()

In questa sezione, controlleremo vari modi di utilizzare la funzione. Per dimostrazione, un server MySQL è impostato con PhpMyAdmin per facilitare. Dai un'occhiata a questa guida sulla configurazione di PhpMyAdmin su Ubuntu.

Uso di base

Dalla scheda SQL, eseguire la seguente query.

$ Select DateDiff ('2090-10-11', '2020-10-10') come 'risultato';

Come mostra l'uscita, la differenza tra le date specificate è di 25568 giorni.

Confronto con una data precedente

E se il secondo appuntamento fosse più tardi del primo appuntamento? Scambia i valori e provali.

$ Select DateDiff ('2020-10-10', '2090-10-11') come 'risultato';

Come possiamo vedere, mostra ancora 25568 giorni. Tuttavia, il valore è negativo. È una differenza cruciale tenere a mente quando si implementa questa funzione in qualsiasi script/query SQL.

Valori DateTime

La funzione DateDiff () accetta anche i valori DateTime come parametro. I valori temporali dovrebbero essere in formato 24 ore.

$ Select DateDiff ('2090-10-11 23:59:59', '2020-10-10 00:00:00') come 'risultato_1';
$ Select DateDiff ('2090-10-11 00:00:00', '2020-10-10 23:59:59') come 'risultato_2';

Si noti che il valore temporale aggiuntivo non influisce sul risultato del calcolo. La funzione si concentra solo sulla data.

Lavorare con valori di data errati

Se i valori della data sono sbagliati, allora datediff () restituirà il valore null. Per mostrare, inserisci una data non valida su uno dei parametri.

$ Select DateDiff ('2099-99-99', '2020-20-20') come 'risultato'

Come previsto, il valore di ritorno è nullo.

Combinando datediff () con CURDATE ()

La funzione Curdate () restituisce la data corrente della macchina. Non ci vuole parametro. Ulteriori informazioni sull'uso di Curdate () per inserire la data e l'ora correnti in MySQL.

Usando CURDATE (), possiamo trovare la differenza tra il presente e la data di destinazione. Ad esempio, confrontiamo la data corrente contro un giorno in passato.

$ Select DateDiff (Curdate (), "1980-10-10") come "risultato"
$ Select DateDiff ('2077-01-01', Curdate ()) come 'risultato'

Si noti che ci sono funzioni aggiuntive, ad esempio current_date (), che agiscono allo stesso modo di Curdate (). In situazioni, entrambi possono essere scambiati.

$ Select DateDiff (current_date (), "1980-10-10") come "risultato"

Usando datediff () con tabelle

Finora abbiamo implementato i semplici comandi datediff () per dimostrare i suoi usi. È ora di metterlo in azione.

Ho preso un database di esempio contenente varie informazioni su una determinata azienda e i suoi dipendenti per dimostrazione. Il database di esempio è direttamente disponibile da qui. Selezioneremo il nome e il cognome dei dipendenti da questo database e scopriremo da quanto tempo lavorano fino ad ora.

$ Select first_name, last_name, datediff (Curdate (), Hire_date) come "giorni lavorati" dai dipendenti;

Pensieri finali

Questa guida dimostra con successo l'uso della funzione DateDiff () in MySQL. Calcola la differenza tra due date e restituisce il valore come numero di giorni. Tutte le dimostrazioni aiutano a comprendere il processo di lavoro della funzione datediff.

Per saperne di più su MySQL, controlla queste guide sulla creazione di tabelle, rinominando tabelle, gestione dei privilegi degli utenti, ecc.

Felice calcolo!