sql >> Databáze >  >> RDS >> Sqlserver

DATETIME2FROMPARTS() Příklady v SQL Server (T-SQL)

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.


  1. Moje pole VARCHAR(MAX) se omezuje na 4000; co dává?

  2. SQLite DROP VIEW

  3. Jak používat Coalesce v MySQL

  4. MySQL v cloudu – výhody a nevýhody Amazon RDS