Corsi on-line

MySQL: aggiornare soltanto l’orario in un campo DateTime

Il tipo di dato DateTime supportato dai database gestiti attraverso il DBMS MySQL può risultare molto utile quando si voglia registrare informazioni complete di date e orari, da solo esso svolge la funzione dei campi con tipo di dato Date e Time insieme; ma come fare se si ha per esempio l’esigenza di aggiornare soltanto la parte relativa all’orario? In questo caso abbiamo a disposizione diversi metodi.

Un primo metodo cosiste nell’utilizzare la funzione ADDTIME, nell’esempio seguente aggiungeremo 12 ore al valore già presente nel campo DateTime del record che ha come identificatore univoco “1”:

UPDATE tabella SET campo_datetime = ADDTIME(campo_datetime, '12:0:0') WHERE id = 1;

In alternativa, è possibile specificare il monte ore addizionale nel modo seguente:

UPDATE tabella SET campo_datetime = ADDTIME(campo_datetime, INTERVAL 12 Hour) WHERE id = 1;

Sempre per addizione, possiamo anche evitare l’utilizzo di ADDTIME sommando l’intervallo aggiuntivo direttamente al valore attuale del campo nel record considerato:

UPDATE tabella SET campo_datetime = campo_datetime+INTERVAL 12 Hour WHERE id = 1;

Un ulteriore metodo sfrutta la concatenazione, nel caso dell’esempio seguente l’orario di un DateTime verrà modificato per addizione, come per l’istruzione precedente, ma associando ad esso un orario specifico:

UPDATE tabella SET campo_datetime = CONCAT(DATE(campo_datetime),' 10:42:13') WHERE id = 1;

In alternativa a CONCAT è possibile utilizzate CONCAT_WS, cioè “concatenazione con separatore”, dove il separatore tra date e orario è un spazio:

UPDATE tabella SET campo_datetime = CONCAT_WS(' ',DATE(campo_datetime), '10:42:13') WHERE id = 1;
Post correlati
I più letti del mese
Tematiche