Modifier le décalage d'une date
Vous pouvez utiliser la fonction SWITCHOFFSET() pour changer le fuseau horaire d'une date de type DATETIME, DATETIME2 ou DATETIMEOFFSET, ou encore d'une chaîne de caractères représentant une date valide. SWITCHOFFSET() accepte deux paramètres : la date ou la chaîne en entrée, et le décalage horaire. Elle retourne l'heure dans le nouveau fuseau, donc 3 h 00 à l'heure avancée de l'Est deviendra 2 h 00 à l'heure avancée du Centre.
Les Jeux olympiques d'été de 2016 à Rio de Janeiro ont commencé à 23 h UTC le 8 août 2016. En partant d'une chaîne contenant cette date et cette heure, voyons à quelle heure cela correspondait dans d'autres régions.
Cette activité fait partie du cours
Analyse de séries chronologiques dans SQL Server
Instructions de l’exercice
- Inscrivez l'appel de fonction approprié pour Brasilia, au Brésil.
- Inscrivez l'appel de fonction et le fuseau horaire appropriés pour Chicago, en Illinois. En août, Chicago est 2 heures derrière l'heure normale de Brasilia.
- Inscrivez l'appel de fonction et le fuseau horaire appropriés pour New Delhi, en Inde. L'Inde n'applique pas l'heure avancée, donc en août, New Delhi est 8 h 30 en avance sur l'heure normale de Brasilia. Notez, lors du calcul des fuseaux horaires, que Brasilia et New Delhi se trouvent de part et d'autre de l'UTC.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
DECLARE
@OlympicsUTC NVARCHAR(50) = N'2016-08-08 23:00:00';
SELECT
-- Fill in the time zone for Brasilia, Brazil
___(@OlympicsUTC, '-03:00') AS BrasiliaTime,
-- Fill in the time zone for Chicago, Illinois
___(@OlympicsUTC, ___) AS ChicagoTime,
-- Fill in the time zone for New Delhi, India
___(@OlympicsUTC, '+___') AS NewDelhiTime;