Changer 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 d’une chaîne de date valide. SWITCHOFFSET() prend deux paramètres : la date (ou la chaîne) en entrée et le décalage du fuseau horaire. Elle renvoie l’heure dans ce nouveau fuseau horaire ; ainsi, 3:00 AM en Eastern Daylight Time devient 2:00 AM en Central Daylight Time.
Les Jeux olympiques d’été 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, nous pouvons voir à quelle heure cela correspondait dans d’autres lieux.
Cet exercice fait partie du cours
<cours>Analyse de séries temporelles dans SQL Server</cours>Instructions de l’exercice
- Complétez l’appel de fonction approprié pour Brasília, Brésil.
- Complétez l’appel de fonction et le fuseau horaire appropriés pour Chicago, Illinois. En août, Chicago a 2 heures de retard sur l’heure de Brasília.
- Complétez l’appel de fonction et le fuseau horaire appropriés pour New Delhi, Inde. L’Inde n’applique pas l’heure d’été ; en août, New Delhi a 8 h 30 d’avance sur l’heure de Brasília. Notez, lors du calcul des fuseaux horaires, que Brasília 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;