Tous les produits
Search
Centre de documentation

ApsaraDB RDS:ST_TimeZone

Dernière mise à jour :Oct 10, 2026

Renvoie le fuseau horaire d'un emplacement ponctuel donné.

Syntaxe

cstring ST_TimeZone(geometry point, boolean timezoneId, integer timezonePrecision);
cstring ST_TimeZone(geography point, boolean timezoneId, integer timezonePrecision);

Paramètres

Paramètre Description
point Objet geometry ou geography. Doit être un point utilisant le système de référence spatiale WGS84 (srid=4326).
timezoneId Indique s'il faut renvoyer le nom du fuseau horaire. Valeurs possibles : true (par défaut) : renvoie le nom du fuseau horaire, par exemple Asia/Shanghai. false : renvoie le fuseau horaire au format GMT, par exemple Etc/GMT+8.
timezonePrecision Précision de la recherche des limites du fuseau horaire. Pris en compte uniquement si timezoneId est défini sur true. Valeurs possibles : 16 (par défaut) : précision de 0,0055 degré (~500 m). 21 : précision de 0,00017 degré (~20 m).

Valeur de retour

Renvoie une valeur cstring contenant la chaîne de caractères du fuseau horaire.

Description

La fonction ST_TimeZone renvoie le fuseau horaire associé à un point géographique donné. Les données relatives aux limites des fuseaux horaires proviennent du projet Timezone Boundary Builder.

Exemples

Renvoyer le nom du fuseau horaire pour un point de type geometry :

SELECT ST_TimeZone('SRID=4326;POINT(121 37)'::geometry);
----
Asia/Shanghai

Renvoyer le nom du fuseau horaire pour un point de type geography :

SELECT ST_TimeZone('POINT(60 37)'::geography);
----
Asia/Tehran

Renvoyer le fuseau horaire au format GMT :

-- Set timezoneId to false to return the GMT format instead of the name format.
SELECT ST_TimeZone('SRID=4326;POINT(121 37)'::geometry, false);
----
Etc/GMT+8

Renvoyer le fuseau horaire avec une précision accrue :

-- Set timezonePrecision to 21 for ~20 m precision instead of the default ~500 m.
SELECT ST_TimeZone('SRID=4326;POINT(-121 37)'::geometry, true, 21);
----
America/Los_Angeles

Gérer un point dont la longitude se situe en dehors de la plage valide :

-- The specified longitude exceeds the valid range (> 180°).
SELECT ST_TimeZone(('SRID=4326;POINT(400 37)'::geometry));
----
Europe/Istanbul