Převod na datum s posunem
Kromě funkce SWITCHOFFSET() můžeme k převodu existujícího data na datový typ s časovým posunem použít také TODATETIMEOFFSET(). Pokud náš výchozí čas je v UTC, musíme ho nejdřív opravit o rozdíl časového pásma a teprve pak přidat posun. Korekci časového pásma provedeme ručně přičtením nebo odečtením hodin (případně minut).
Zakončení olympijských her 2016 v Rio de Janeiru začalo 21. srpna 2016 v 23:00 UTC. Začneme řetězcem obsahujícím toto datum a čas a zjistíme, kolik bylo ve stejnou chvíli na jiných místech světa. Pro Phoenix v Arizoně platí, že toto město dodržuje Mountain Standard Time, tedy UTC -7 po celý rok. Ostrovní stát Tuvalu má vlastní časové pásmo, které je o 12 hodin před UTC.
Toto cvičení je součástí kurzu
Time Series Analysis in SQL Server
Pokyny k cvičení
- Doplň čas v Phoenixu v Arizoně, který v rámci Mountain Standard Time odpovídá UTC -07:00.
- Doplň čas pro Tuvalu, které je 12 hodin před UTC.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
DECLARE
@OlympicsClosingUTC DATETIME2(0) = '2016-08-21 23:00:00';
SELECT
-- Fill in 7 hours back and a '-07:00' offset
___(DATEADD(HOUR, -___, @OlympicsClosingUTC), '___') AS PhoenixTime,
-- Fill in 12 hours forward and a '+12:00' offset.
___(DATEADD(HOUR, ___, @OlympicsClosingUTC), '___') AS TuvaluTime;