Na serveru SQL Server, DATETIME2FROMPARTS()
funguje podobně jako DATETIMEFROMPARTS()
funkce, kromě toho, že přijímá 8 argumentů a vrací datetime2 hodnota. DATETIMEFROMPARTS()
funkce na druhé straně přijímá pouze 7 argumentů a vrací datetime hodnotu.
V zásadě zadáte všechny části data/času a tato funkce vrátí datetime2 hodnotu na základě vámi poskytnutých dílů.
Syntaxe
Nejprve je zde syntaxe:
DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision )
Kde každý z prvních 7 argumentů je celočíselný výraz, který určuje danou část data. Například year
je celé číslo, které určuje část data v roce.
8. argument je celočíselný výraz, který umožňuje definovat přesnost vrácené hodnoty. Tato hodnota určuje měřítko (tj. počet číslic napravo od desetinného místa).
Příklad
Zde je příklad použití:
SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 4 ) AS Result;
Výsledek:
+--------------------------+ | Result | |--------------------------| | 2021-05-10 23:35:29.0500 | +--------------------------+
Neplatné hodnoty
Všechny argumenty musí mít platné hodnoty. Nemůžete například zadat měsíc 13 nebo hodnotu minut 61.
Zde je příklad, kde zadávám hodnotu měsíce 13:
SELECT DATETIME2FROMPARTS( 2021, 13, 10, 23, 35, 29, 500, 4 ) AS Result;
Výsledek:
Cannot construct data type datetime2, some of the arguments have values which are not valid.
Počet argumentů
Musíte také zadat správný počet argumentů (8):
SELECT DATETIME2FROMPARTS( 2021, 05, 10 ) AS Result;
Výsledek:
The datetime2fromparts function requires 8 argument(s).
Nulové hodnoty
Pokud zadáte hodnotu null pro kterýkoli z prvních 7 argumentů, výsledkem bude NULL:
SELECT DATETIME2FROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 4 ) AS Result;
Výsledek:
+----------+ | Result | |----------| | NULL | +----------+
Zadáním hodnoty null pro 8. argument (který určuje přesnost/měřítko) však dojde k chybě:
SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, NULL ) AS Result;
Výsledek:
Scale argument is not valid. Valid expressions for data type datetime2 scale argument are integer constants and integer constant expressions.