Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

DATETIMEOFFSETFROMPARTS() Exemples dans SQL Server (T-SQL)

T-SQL a une fonction appelée DATETIMEOFFSETFROMPARTS() qui vous permet d'obtenir un datetimeoffset valeur des différentes parties distinctes d'une date. Plus précisément, il renvoie un datetimeoffset valeur pour la date et l'heure spécifiées et avec les décalages et la précision spécifiés.

Exemples de cette fonction ci-dessous.

Syntaxe

La syntaxe ressemble à ceci :

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

Où :

  • Les 7 premiers arguments sont des expressions entières spécifiant cette partie date/heure particulière.
  • Le hour_offset l'argument est une expression entière spécifiant la partie heure du décalage de fuseau horaire.
  • Le minute_offset est une expression entière spécifiant la partie minute du décalage de fuseau horaire.
  • La precision l'argument est un entier littéral spécifiant la précision de datetimeoffset valeur à retourner. Cette valeur spécifie en fait l'échelle (c'est-à-dire le nombre de chiffres à droite de la décimale).

Exemple

Voici un exemple d'utilisation.

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

Résultat :

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

Arguments invalides

Vous devez vous assurer que tous les arguments sont valides, sinon vous obtiendrez une erreur. Voici un exemple de fourniture d'une partie d'heure hors plage (25). La partie heure ne peut être comprise qu'entre 0 et 24.

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

Résultat :

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

Nombre d'arguments

Vous devez fournir le nombre correct d'arguments (10). Si vous ne le faites pas, vous obtiendrez une erreur.

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

Résultat :

The datetimeoffsetfromparts function requires 10 argument(s).

Arguments nuls

Si l'un des 9 premiers arguments est nul, le résultat est NULL :

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

Résultat :

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

Cependant, si le dernier argument (précision) est nul, alors une erreur est renvoyée :

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

Résultat :

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

Voir également Exemples DATETIME2FROMPARTS() dans SQL Server (T-SQL) pour renvoyer un datetime2 valeur (sans le décalage).