sql >> Databasteknik >  >> RDS >> Sqlserver

DATETIME2FROMPARTS() Exempel i SQL Server (T-SQL)

I SQL Server, DATETIME2FROMPARTS() funktionen fungerar på samma sätt som DATETIMEFROMPARTS() funktion, förutom att den accepterar 8 argument och returnerar en datetime2 värde. DATETIMEFROMPARTS() funktion å andra sidan, accepterar bara 7 argument och den returnerar en datetime värde.

I grund och botten anger du alla datum/tid delar och den här funktionen kommer att returnera en datetime2 värde baserat på de delar du tillhandahåller.

Syntax

Först, här är syntaxen:

DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision )

Där vart och ett av de första 7 argumenten är ett heltalsuttryck som anger den delen av datumet. Till exempel year är ett heltal som anger årsdelen av datumet.

Det 8:e argumentet är ett heltalsuttryck som låter dig definiera precisionen för returvärdet. Detta värde anger skalan (dvs. antalet siffror till höger om decimalen).

Exempel

Här är ett exempel på användning:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 4 ) AS Result;

Resultat:

+--------------------------+
| Result                   |
|--------------------------|
| 2021-05-10 23:35:29.0500 |
+--------------------------+

Ogiltiga värden

Alla argument måste vara giltiga värden. Du kan till exempel inte ange en månad på 13 eller ett minutvärde på 61.

Här är ett exempel där jag anger ett månadsvärde på 13:

SELECT DATETIME2FROMPARTS( 2021, 13, 10, 23, 35, 29, 500, 4 ) AS Result;

Resultat:

Cannot construct data type datetime2, some of the arguments have values which are not valid.

Antal argument

Du måste också ange rätt antal argument (8):

SELECT DATETIME2FROMPARTS( 2021, 05, 10 ) AS Result;

Resultat:

The datetime2fromparts function requires 8 argument(s).

Nullvärden

Om du anger ett nollvärde för något av de första 7 argumenten blir resultatet NULL:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 4 ) AS Result;

Resultat:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Att tillhandahålla ett nullvärde för det 8:e argumentet (som anger precisionen/skalan) resulterar i ett fel:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, NULL ) AS Result;

Resultat:

Scale argument is not valid. Valid expressions for data type datetime2 scale argument are integer constants and integer constant expressions.


  1. Förhindrar JDBC-specifikationen '?' från att användas som operator (utanför citattecken)?

  2. SqlServer:Inloggning misslyckades för användaren

  3. SQL Server 2016:Skapa en databas

  4. Vertikalt skalande PostgreSQL