sql >> Database teknologi >  >> RDS >> Sqlserver

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

I SQL Server, DATETIME2FROMPARTS() funktionen fungerer på samme måde som DATETIMEFROMPARTS() funktion, bortset fra at den accepterer 8 argumenter og returnerer en datetime2 værdi. DATETIMEFROMPARTS() funktion på den anden side, accepterer kun 7 argumenter, og den returnerer en datetime værdi.

Grundlæggende angiver du alle dato/klokkeslæt dele, og denne funktion vil returnere en datetime2 værdi baseret på de dele, du leverer.

Syntaks

Først her er syntaksen:

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

Hvor hvert af de første 7 argumenter er et heltalsudtryk, der angiver den del af datoen. For eksempel year er et heltal, der angiver årsdelen af ​​datoen.

Det 8. argument er et heltalsudtryk, der giver dig mulighed for at definere præcisionen af ​​returværdien. Denne værdi angiver skalaen (dvs. antallet af cifre til højre for decimalen).

Eksempel

Her er et eksempel på brug:

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

Resultat:

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

Ugyldige værdier

Alle argumenter skal være gyldige værdier. Du kan f.eks. ikke angive en måned på 13 eller en minutværdi på 61.

Her er et eksempel, hvor jeg angiver en månedsværdi 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 argumenter

Du skal også angive det korrekte antal argumenter (8):

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

Resultat:

The datetime2fromparts function requires 8 argument(s).

Nul-værdier

Hvis du angiver en nulværdi for et af de første 7 argumenter, er resultatet NULL:

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

Resultat:

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

Angivelse af en nulværdi for det 8. argument (som specificerer præcisionen/skalaen) resulterer dog i en fejl:

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. Mysql:Bestil efter like?

  2. Sådan indsætter du et linjeskift i en SQL Server VARCHAR/NVARCHAR streng

  3. Konvertering mislykkedes ved konvertering af dato og/eller klokkeslæt fra tegnstreng, mens dato og klokkeslæt blev indsat

  4. PHP - Brug af PDO med IN-klausularray