In MySQL, puoi convertire un valore datetime tra un fuso orario e un altro usando CONVERT_TZ()
funzione. Questa funzione accetta 3 argomenti; il valore datetime, il fuso orario originale e il fuso orario in cui convertire.
Sintassi ed esempi di seguito.
Sintassi
Ecco la sintassi:
CONVERT_TZ(dt,from_tz,to_tz)
Dove dt
è la data/ora, from_tz
è il fuso orario originale e to_tz
è il fuso orario in cui convertire.
Esempio
Ecco un esempio di utilizzo.
SELECT CONVERT_TZ('2020-12-01 01:00:00','+00:00','+08:00') AS Result;
Risultato:
+---------------------+ | Result | +---------------------+ | 2020-12-01 09:00:00 | +---------------------+
Fuso orario denominato
Puoi anche utilizzare fusi orari con nome, come 'US/Eastern'
, 'Europe/Moscow'
, 'MET'
, ecc.
Per fare ciò, devi prima impostare le tabelle dei fusi orari. La procedura di installazione di MySQL crea le tabelle dei fusi orari, ma non le carica. Pertanto, dovrai prima popolare queste tabelle.
Se provi a utilizzare un fuso orario con nome con questa funzione senza prima popolare le tabelle dei fusi orari, otterrai un valore nullo.
SELECT CONVERT_TZ('2020-12-01 01:00:00','Europe/Helsinki','US/Eastern') AS Result;
Risultato:
+--------+ | Result | +--------+ | NULL | +--------+
Si noti che anche se si popolano le tabelle dei fusi orari, potrebbe essere necessario aggiornarle periodicamente. Questo perché le informazioni possono occasionalmente cambiare. Per ulteriori informazioni a riguardo, vedere Supporto per il fuso orario di MySQL Server sul sito Web della documentazione di MySQL.