Aggiungere o Sottrarre ore, giorni, minuti e secondi ad una data (datetime) in MySql

Giorgio Borelli

La gestione delle date e del tempo si sà, è sempre un aspetto cruciale nelle applicazioni ed anche un pò ostico per certi versi, soprattutto quando comincia la necessità di aggiungere o sottrarre giorni, minuti, ore e secondi ad una data.

Vediamo invece come a livello di database, l'RDBMS MySql rende semplici queste operazioni, quasi banali direi, con MySql aggiungere del tempo ad un tipo date o datetime è davvero banale, andiamo a vedere come fare.

Andiamo direttamente al sodo, e con dei banali esempi mostreremo come trattare l'aggiunta o la sottrazione del tempo di un date time in MySql.

 

Aggiungere (sommare) giorni ad una data (date time) in MySql

Supponiamo di voler selezionare solo quegli elementi che abbiano un campo data inferiore a quella attuale aumentata di 1 giorno, scriveremo così:

SELECT * FROM my_table WHERE my_date<(NOW() + INTERVAL 1 DAY);

Come vedete è davvero semplice, basta sommare i giorni, proprio letteralmente, usando l'operatore di somma seguito dalla parola chiave INTERVAL ed il tempo in modo numerico seguito da DAY (giorni), in maniera analoga faremo per le ore, i minuti ed i secondi, variando ovviamente le parole chiavi, vediamone i diversi esempi.

 

Aggiungere (sommare) ore ad una data (date time) in MySql

Aggiungiamo 2 ore:

SELECT * FROM my_table WHERE my_date<(NOW() + INTERVAL 2 HOUR);

Aggiungere (sommare) minuti ad una data (date time) in MySql

Aggiungiamo 30 minuti alla data attuale:

SELECT * FROM my_table WHERE my_date<(NOW() + INTERVAL 30 MINUTE);

Aggiungere (sommare) secondi ad una data (date time) in MySql

Aggiungiamo 10 secondi ad una data:

SELECT * FROM my_table WHERE my_date<(NOW() + INTERVAL 10 SECOND);

 

Per sottrarre del tempo (giorni, minuti, ore o secondi) ad una data in MySql, opereremo allo stesso modo, soltanto che anzichè usare l'operatore di somma, useremo quello di sottrazione, il meno -

Il resto rimane del tutto invariato tramite le parole chiavi INTERVAL [DAY | HOUR | MINUTE | SECOND], aggiungere o sottrarre del tempo alle date in MySql, e manipolarle secondo le proprie esigenze è davvero semplice ed immediato.

N.B. Fate attenzione, se volete aggiungere o sottrarre minuti, ore o secondi, il tipo definito in MySql deve essere di tipo DATETIME e non DATE.

 

Se qualcuno volesse aggiungere qualcosa o fare qualche domanda su come aggiungere o sottrarre il tempo alle date in MySql, lo spazio dei commenti è a vostra disposizione.

Categorie: MySql

Tags: , ,

Aggiungi Commento

biuquote
Loading