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

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

T-SQL har en funktion kaldet DATETIMEOFFSETFROMPARTS() der giver dig mulighed for at få en datetime offset værdi fra de forskellige separate dele af en dato. Specifikt returnerer det en datotidsforskydning værdi for den angivne dato og klokkeslæt og med de angivne forskydninger og præcision.

Eksempler på denne funktion nedenfor.

Syntaks

Syntaksen ser sådan ud:

DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )

Hvor:

  • De første 7 argumenter er heltalsudtryk, der angiver den pågældende dato/tidsdel.
  • hour_offset argument er et heltalsudtryk, der angiver timedelen af ​​tidszoneforskydningen.
  • minute_offset er et heltalsudtryk, der angiver minutdelen af ​​tidszoneforskydningen.
  • precision argument er et heltal, der angiver nøjagtigheden af datotidsforskydningen værdi, der skal returneres. Denne værdi angiver faktisk skalaen (dvs. antallet af cifre til højre for decimalen).

Eksempel

Her er et eksempel på brug.

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Resultat:

Result
----------------------------------
2021-05-10 23:35:29.0500 +12:30

Ugyldige argumenter

Du skal sikre dig, at alle argumenter er gyldige, ellers får du en fejl. Her er et eksempel på levering af en timedel uden for rækkevidde (25). Timedelen kan kun være mellem 0 og 24.

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 25, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Resultat:

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

Antal argumenter

Du skal angive det korrekte antal argumenter (10). Hvis du ikke gør det, får du en fejlmeddelelse.

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

Resultat:

The datetimeoffsetfromparts function requires 10 argument(s).

Nul-argumenter

Hvis nogle af de første 9 argumenter er nul, er resultatet NULL :

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Resultat:

Result
----------------------------------
NULL

Men hvis det sidste (præcision) argument er null, returneres en fejl:

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, NULL ) 
AS Result;

Resultat:

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

Se også DATETIME2FROMPARTS() eksempler i SQL Server (T-SQL) for at returnere en datetime2 værdi (uden forskydning).


  1. Failover for PostgreSQL-replikering 101

  2. Del 2:Billedklassificering med MariaDB Server og TensorFlow – en vejledning

  3. PostgreSQL UNIX domæne sockets vs TCP sockets

  4. Sådan genereres scripts for at genskabe fremmednøglebegrænsninger i SQL Server-databasen - SQL Server / TSQL vejledning del 73