Types de données et fonctions de date et d’heure (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Les sections de cette article abordent tous les types de données et fonctions de date et d’heure de Transact-SQL.

Types de données de date et d’heure

Les types de données de date et heure Transact-SQL sont listés dans le tableau suivant :

Type de données Format Plage Précision Taille de stockage (en octets) Précision à la fraction de seconde définie par l'utilisateur Décalage de fuseau horaire
time hh:mm:ss [.nnnnnnn] 00:00:00.0000000 à 23:59:59.9999999 100 nanosecondes De 3 à 5 Oui Non
date AAAA-MM-JJ 0001-01-01 à 9999-12-31 1 jour 3 Non Non
smalldatetime AAAA-MM-JJ hh:mm:ss 1900-01-01 à 2079-06-06 1 minute 4 Non Non
datetime AAAA-MM-JJ hh:mm:ss[.nnn] 1753-01-01 à 9999-12-31 0,00333 seconde 8 Non Non
datetime2 AAAA-MM-JJ hh:mm:ss[.nnnnnnn] 0001-01-01 00:00:00.0000000 à 9999-12-31 23:59:59.9999999 100 nanosecondes 6 à 8 Oui Non
datetimeoffset AAAA-MM-JJ hh:mm:ss[.nnnnnnn] [+|-]hh:mm 0001-01-01 00:00:00,0000000 à 9999-12-31 23:59:59,9999999 (au format UTC) 100 nanosecondes 8 à 10 Oui Oui

Notes

Le type de données Transact-SQL rowversion n’est pas un type de données de date et heure. timestamp est un synonyme déprécié de rowversion.

Fonctions de date et heure

Les tableaux suivants listent les fonctions de date et heure Transact-SQL. Pour plus d’informations sur le déterminisme, consultez Fonctions déterministes et non déterministes.

Fonctions permettant de retourner des valeurs système de date et d’heure

Transact-SQL dérive toutes les valeurs système de date et d’heure du système d’exploitation de l’ordinateur sur lequel s’exécute l’instance SQL Server.

Fonctions système de date et d’heure de plus grande précision

Depuis SQL Server 2008 (10.0.x), le Moteur de base de données dérive les valeurs de date et d’heure en utilisant l’API Windows GetSystemTimeAsFileTime(). La précision dépend des composants matériels de l’ordinateur et de la version de Windows sur laquelle s’exécute l’instance de SQL Server. Cette API a une précision fixée à 100 nanosecondes. Utilisez l’API Windows GetSystemTimeAdjustment() pour déterminer la précision.

Fonction Syntaxe Valeur de retour Type de données de retour Propriété de déterminisme
SYSDATETIME SYSDATETIME ( ) Retourne une valeur datetime2(7) contenant la date et l’heure de l’ordinateur sur lequel s’exécute l’instance de SQL Server. La valeur retournée n’inclut pas le décalage de fuseau horaire. datetime2(7) Non déterministe
SYSDATETIMEOFFSET SYSDATETIMEOFFSET () Retourne une valeur datetimeoffset(7) contenant la date et l’heure de l’ordinateur sur lequel s’exécute l’instance de SQL Server. La valeur retournée inclut le décalage de fuseau horaire. datetimeoffset(7) Non déterministe
SYSUTCDATETIME SYSUTCDATETIME ( ) Retourne une valeur datetime2(7) contenant la date et l’heure de l’ordinateur sur lequel s’exécute l’instance de SQL Server. La fonction retourne les valeurs de date et d’heure sous forme d’heure UTC (temps universel coordonné). datetime2(7) Non déterministe

Fonctions système de date et d’heure de moindre précision

Fonction Syntaxe Valeur de retour Type de données de retour Propriété de déterminisme
CURRENT_TIMESTAMP CURRENT_TIMESTAMP Retourne une valeur datetime contenant la date et l’heure de l’ordinateur sur lequel s’exécute l’instance de SQL Server. La valeur retournée n’inclut pas le décalage de fuseau horaire. datetime Non déterministe
GETDATE GETDATE ( ) Retourne une valeur datetime contenant la date et l’heure de l’ordinateur sur lequel s’exécute l’instance de SQL Server. La valeur retournée n’inclut pas le décalage de fuseau horaire. datetime Non déterministe
GETUTCDATE GETUTCDATE ( ) Retourne une valeur datetime contenant la date et l’heure de l’ordinateur sur lequel s’exécute l’instance de SQL Server. La fonction retourne les valeurs de date et d’heure sous forme d’heure UTC (temps universel coordonné). datetime Non déterministe

Fonctions permettant de retourner des parties de date et d’heure

Fonction Syntaxe Valeur de retour Type de données de retour Propriété de déterminisme
DATE_BUCKET DATE_BUCKET ( datepart, number, date, origin ) Retourne une valeur correspondant au début de chaque compartiment date-heure, à partir du timestamp défini par le paramètre origin ou la valeur d’origine par défaut de 1900-01-01 00:00:00.000 si le paramètre d’origine n’est pas spécifié. Le type de retour dépend de l’argument fourni pour date. Non déterministe
DATENAME DATENAME ( datepart, date ) Retourne une chaîne de caractères représentant la partie date (datepart) spécifiée de la date spécifiée. nvarchar Non déterministe
DATEPART DATEPART ( datepart, date ) Retourne un entier représentant la partie date (datepart) spécifiée de la date spécifiée. int Non déterministe
DATETRUNC DATETRUNC ( datepart, date ) Retourne une date d’entrée tronquée en une datepart spécifiée. Le type de retour dépend de l’argument fourni pour date. Non déterministe
DAY DAY ( date ) Retourne un entier représentant la partie jour de la date spécifiée. int Déterministe
MONTH MONTH ( date ) Retourne un entier représentant la partie mois d’une date spécifiée. int Déterministe
YEAR YEAR ( date ) Retourne un entier représentant la partie année d’une date spécifiée. int Déterministe

Fonctions permettant de retourner des valeurs de date et d’heure à partir de leurs parties

Fonction Syntaxe Valeur de retour Type de données de retour Propriété de déterminisme
DATEFROMPARTS DATEFROMPARTS ( year, month, day ) Renvoie une valeur date pour l’année, le mois et le jour spécifiés. date Déterministe
DATETIME2FROMPARTS DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision) Retourne une valeur datetime2 pour la date et l’heure spécifiées, avec la précision spécifiée. datetime2(precision) Déterministe
DATETIMEFROMPARTS DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds) Renvoie une valeur datetime pour la date et l’heure spécifiées. datetime Déterministe
DATETIMEOFFSETFROMPARTS DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision) Retourne une valeur datetimeoffset pour la date et l’heure spécifiées, avec la précision et les décalages spécifiés. datetimeoffset(precision) Déterministe
SMALLDATETIMEFROMPARTS SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute ) Renvoie une valeur smalldatetime pour la date et l’heure spécifiées. smalldatetime Déterministe
TIMEFROMPARTS TIMEFROMPARTS ( hour, minute, seconds, fractions, precision ) Retourne une valeur time pour l’heure spécifiée, avec la précision spécifiée. time(precision) Déterministe

Fonctions permettant de retourner des valeurs de différence de date et d’heure

Fonction Syntaxe Valeur de retour Type de données de retour Propriété de déterminisme
DATEDIFF DATEDIFF ( datepart, startdate, enddate ) Retourne le nombre de limites datepart de date ou d’heure traversées entre deux dates spécifiées. int Déterministe
DATEDIFF_BIG DATEDIFF_BIG ( datepart, startdate, enddate ) Retourne le nombre de limites datepart de date ou d’heure traversées entre deux dates spécifiées. bigint Déterministe

Fonctions permettant de modifier les valeurs de date et d’heure

Fonction Syntaxe Valeur de retour Type de données de retour Propriété de déterminisme
DATEADD DATEADD (datepart, number, date ) Retourne une nouvelle valeur datetime en ajoutant un intervalle au datepart spécifié de la date spécifiée. Type de données de l’argument date. Déterministe
EOMONTH EOMONTH ( start_date [, month_to_add ] ) Retourne le dernier jour du mois contenant la date spécifiée, avec un décalage facultatif. Le type de retour est le type de l’argument start_date ou le type de données date. Déterministe
SWITCHOFFSET SWITCHOFFSET (DATETIMEOFFSET, time_zone) SWITCHOFFSET change le décalage de fuseau horaire d’une valeur DATETIMEOFFSET et préserve la valeur UTC. datetimeoffset avec la précision fractionnelle de DATETIMEOFFSET. Déterministe
TODATETIMEOFFSET TODATETIMEOFFSET (expression, time_zone) TODATETIMEOFFSET transforme une valeur datetime2 en une valeur datetimeoffset. TODATETIMEOFFSET interprète la valeur datetime2 en heure locale, pour le time_zone spécifié. datetimeoffset avec la précision fractionnelle de l’argument datetime Déterministe

Fonctions permettant de définir ou de retourner des fonctions de format de session

Fonction Syntaxe Valeur de retour Type de données de retour Propriété de déterminisme
@@DATEFIRST @@DATEFIRST Retourne la valeur actuelle, pour la session, de SET DATEFIRST. tinyint Non déterministe
SET DATEFIRST SET DATEFIRST { number | @number_var } Affecte au premier jour de la semaine un nombre allant de 1 à 7. Non applicable Non applicable
SET DATEFORMAT SET DATEFORMAT { format | @format_var } Définit l’ordre des éléments de date (jour/mois/année) pour enregistrer des données de type datetime ou smalldatetime. Non applicable Non applicable
@@LANGUAGE @@LANGUAGE Retourne le nom de la langue actuellement utilisée. @@LANGUAGE n’est pas une fonction de date ou d’heure. Toutefois, le paramètre de langue peut affecter la sortie de fonctions de date. Non applicable Non applicable
SET LANGUAGE SET LANGUAGE { [ N ] 'language' | @language_var } Définit l'environnement de la langue pour la session et les messages système. SET LANGUAGE n’est pas une fonction de date ou d’heure. Toutefois, le paramètre de langue affecte la sortie de fonctions de date. Non applicable Non applicable
sp_helplanguage sp_helplanguage [ [ @language = ] 'language' ] Retourne des informations sur les formats de date de toutes les langues prises en charge. sp_helplanguage n’est pas une procédure stockée de date ou d’heure. Toutefois, le paramètre de langue affecte la sortie de fonctions de date. Non applicable Non applicable

Fonctions permettant de valider les valeurs de date et d’heure

Fonction Syntaxe Valeur de retour Type de données de retour Propriété de déterminisme
ISDATE ISDATE ( expression ) Détermine si une expression d’entrée datetime ou smalldatetime a une valeur de date ou d’heure valide. int ISDATE est déterministe uniquement si elle est utilisée avec la fonction CONVERT, quand le paramètre de style CONVERT est spécifié et quand le style est différent de 0, 100, 9 ou 109.

Articles relatifs à la date et à l’heure

Article Description
FORMAT Retourne une valeur mise en forme avec la culture facultative et le format spécifiés. Utilisez la fonction FORMAT pour la mise en forme comme chaînes de valeurs de date/heure et de valeurs numériques compatibles avec les paramètres régionaux.
CAST et CONVERT (Transact-SQL) Fournit des informations sur la conversion des valeurs de date et d’heure depuis et vers des littéraux de chaîne et d’autres formats de date et d’heure.
Rédiger des instructions Transact-SQL internationales Fournit des directives relatives à la portabilité des bases de données et applications de bases de données qui utilisent des instructions Transact-SQL d’un langage à l’autre ou qui prennent en charge plusieurs langages.
Fonctions scalaires ODBC (Transact-SQL) Fournit des informations sur les fonctions scalaires ODBC qui peuvent être utilisées dans les instructions Transact-SQL. Cela inclut les fonctions de date et d’heure ODBC.
AT TIME ZONE (Transact-SQL) Fournit la conversion de fuseau horaire.

Voir aussi