Dans MySQL, vous pouvez convertir une valeur datetime entre un fuseau horaire à un autre en utilisant le CONVERT_TZ()
une fonction. Cette fonction accepte 3 arguments; la valeur datetime, le fuseau horaire d'origine et le fuseau horaire vers lequel effectuer la conversion.
Syntaxe et exemples ci-dessous.
Syntaxe
Voici la syntaxe :
CONVERT_TZ(dt,from_tz,to_tz)
Où dt
est la date/heure, from_tz
est le fuseau horaire d'origine, et to_tz
est le fuseau horaire vers lequel effectuer la conversion.
Exemple
Voici un exemple d'utilisation.
SELECT CONVERT_TZ('2020-12-01 01:00:00','+00:00','+08:00') AS Result;
Résultat :
+---------------------+ | Result | +---------------------+ | 2020-12-01 09:00:00 | +---------------------+
Fuseaux horaires nommés
Vous pouvez également utiliser des fuseaux horaires nommés, tels que 'US/Eastern'
, 'Europe/Moscow'
, 'MET'
, etc.
Pour ce faire, vous devrez d'abord configurer les tables de fuseaux horaires. La procédure d'installation de MySQL crée les tables de fuseaux horaires, mais elle ne les charge pas. Par conséquent, vous devrez d'abord remplir ces tableaux.
Si vous essayez d'utiliser un fuseau horaire nommé avec cette fonction sans d'abord remplir les tables de fuseaux horaires, vous obtiendrez une valeur nulle.
SELECT CONVERT_TZ('2020-12-01 01:00:00','Europe/Helsinki','US/Eastern') AS Result;
Résultat :
+--------+ | Result | +--------+ | NULL | +--------+
Notez que même si vous remplissez les tables de fuseaux horaires, vous devrez peut-être les mettre à jour périodiquement. En effet, les informations peuvent parfois changer. Pour plus d'informations à ce sujet, consultez Prise en charge du fuseau horaire du serveur MySQL sur le site Web de documentation MySQL.