DATETIMEOFFSETFROMPARTS (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Retourne une valeur datetimeoffset pour les arguments de date et d’heure indiqués. Cette valeur a une précision spécifiée par l’argument precision et un décalage déterminé par les arguments offset.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

year
Expression entière qui spécifie une année.

month
Expression entière qui spécifie un mois.

day
Expression entière qui spécifie un jour.

hour
Expression entière qui spécifie les heures.

minute
Expression entière qui spécifie les minutes.

secondes
Expression entière qui spécifie les secondes.

fractions
Expression entière qui spécifie une valeur de fraction de secondes.

hour_offset
Expression entière qui spécifie la partie heure du décalage de fuseau horaire.

minute_offset
Expression entière qui spécifie la partie minute du décalage de fuseau horaire.

precision
Valeur littérale entière qui spécifie la précision de la valeur datetimeoffset retournée par DATETIMEOFFSETFROMPARTS.

Types de retour

datetimeoffset(precision)

Remarques

DATETIMEOFFSETFROMPARTS retourne un type de données datetimeoffset entièrement initialisé. Les arguments offset représentent le décalage de fuseau horaire. S’ils sont omis, DATETIMEOFFSETFROMPARTS suppose un décalage de fuseau horaire de 00:00, soit aucun décalage de fuseau horaire. S’ils sont spécifiés, DATETIMEOFFSETFROMPARTS attend des valeurs, toutes deux positives ou négatives, pour les deux arguments. Si minute_offset a une valeur et hour_offset non, DATETIMEOFFSETFROMPARTS génère une erreur. DATETIMEOFFSETFROMPARTS génère également une erreur si les autres arguments ont des valeurs non valides. Si au moins un des arguments requis a une valeur NULL, DATETIMEOFFSETFROMPARTS retourne NULL. En revanche, si l’argument precision a une valeur NULL, DATETIMEOFFSETFROMPARTS génère une erreur.

L’argument fractions dépend de l’argument precision. Par exemple, pour une valeur precision égale à 7, chaque fraction représente 100 nanosecondes ; si elle est de 3, chaque fraction représente une milliseconde. Lorsque precision a la valeur zéro, la valeur de fractions doit également être zéro ; sinon, DATETIMEOFFSETFROMPARTS génère une erreur.

Cette fonction peut être exécutée à distance sur des serveurs SQL Server 2012 (11.x) et versions ultérieures. Elle ne peut pas être exécutée à distance sur des serveurs dont la version est antérieure à SQL Server 2012 (11.x).

Exemples

R. Exemple sans fractions de seconde

SELECT DATETIMEOFFSETFROMPARTS ( 2010, 12, 31, 14, 23, 23, 0, 12, 0, 7 ) AS Result;  

Voici le jeu de résultats obtenu.

Result  
----------------------------------
2010-12-31 14:23:23.0000000 +12:00  
  
(1 row(s) affected)  

B. Exemple avec fractions de seconde

L’exemple suivant illustre l’utilisation des paramètres fractions et precision :

  1. Quand fractions a la valeur 5 et precision la valeur 1, la valeur de fractions représente 5/10 de seconde.

  2. Quand fractions a la valeur 50 et precision la valeur 2, la valeur de fractions représente 50/100 de seconde.

  3. Quand fractions a la valeur 500 et precision la valeur 3, la valeur de fractions représente 500/1000 de seconde.

SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 5, 12, 30, 1 );  
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 50, 12, 30, 2 );  
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 500, 12, 30, 3 );  
GO  

Voici le jeu de résultats obtenu.

----------------------------------  
2011-08-15 14:30:00.5 +12:30  
  
(1 row(s) affected)  
  
----------------------------------  
2011-08-15 14:30:00.50 +12:30  
  
(1 row(s) affected)  
  
----------------------------------  
2011-08-15 14:30:00.500 +12:30  
  
(1 row(s) affected)  

Voir aussi

datetimeoffset (Transact-SQL)
AT TIME ZONE (Transact-SQL)