T-SQL má funkci nazvanou DATETIMEOFFSETFROMPARTS()
který vám umožní získat datetimeoffset hodnotu z různých samostatných částí data. Konkrétně vrací datetimeoffset hodnotu pro zadané datum a čas a se zadanými posuny a přesností.
Příklady této funkce níže.
Syntaxe
Syntaxe vypadá takto:
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )
Kde:
- Prvních 7 argumentů jsou celočíselné výrazy určující konkrétní část data/času.
hour_offset
argument je celočíselný výraz určující hodinovou část posunu časového pásma.minute_offset
je celočíselný výraz určující minutovou část posunu časového pásma.precision
argument je celočíselný literál určující přesnost datetimeoffset hodnotu, která má být vrácena. Tato hodnota ve skutečnosti určuje měřítko (tj. počet číslic napravo od desetinného místa).
Příklad
Zde je příklad použití.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, 4 ) AS Result;
Výsledek:
Result ---------------------------------- 2021-05-10 23:35:29.0500 +12:30
Neplatné argumenty
Musíte se ujistit, že všechny argumenty jsou platné, jinak dostanete chybu. Zde je příklad poskytnutí části hodiny mimo rozsah (25). Hodinová část může být pouze mezi 0 a 24.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 25, 35, 29, 500, 12, 30, 4 ) AS Result;
Výsledek:
Cannot construct data type datetimeoffset, some of the arguments have values which are not valid.
Počet argumentů
Musíte zadat správný počet argumentů (10). Pokud tak neučiníte, zobrazí se chyba.
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10 ) AS Result;
Výsledek:
The datetimeoffsetfromparts function requires 10 argument(s).
Nulové argumenty
Pokud je některý z prvních 9 argumentů prázdný, výsledek je NULL
:
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 12, 30, 4 ) AS Result;
Výsledek:
Result ---------------------------------- NULL
Pokud je však poslední argument (přesnost) null, vrátí se chyba:
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, NULL ) AS Result;
Výsledek:
Scale argument is not valid. Valid expressions for data type datetimeoffset scale argument are integer constants and integer constant expressions.
Viz také příklady DATETIME2FROMPARTS() v SQL Server (T-SQL) pro vrácení datetime2 hodnotu (bez offsetu).