Fonctions de date et d'heure (Transact-SQL)

Les sections suivantes de cette rubrique fournissent une vue d'ensemble de tous les types et fonctions de données de date et d'heure Transact-SQL. Pour obtenir des informations supplémentaires à leur sujet, ainsi que des exemples qui leur sont communs, consultez Utilisation des données de date et d'heure.

  • Types de données de date et d'heure

  • Fonctions de date et d'heure

  • Fonctions permettant d'obtenir des valeurs système de date et d'heure

  • Fonctions permettant d'obtenir des parties de date et d'heure

  • Fonctions permettant d'obtenir les différences de date et d'heure

  • Fonctions permettant de modifier les valeurs de date et d'heure

  • Fonctions permettant de définir ou d'obtenir un format de session

  • Fonctions permettant de valider les valeurs de date et d'heure

  • Rubriques relatives à la date et à l'heure

Types de données de date et d'heure

Les types de données de date et d'heure Transact-SQL sont répertorié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

heure

hh:mm:ss[.nnnnnnn]

00:00:00.0000000 à 23:59:59.9999999

100 nanosecondes

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-SQLrowversion n'est pas un type de données de date et d'heure. timestamp est un synonyme déconseillé pour rowversion.

Fonctions de date et d'heure

Les fonctions de date et d'heure Transact-SQL sont répertoriées dans les tableaux suivants. Pour plus d'informations sur le déterminisme, consultez Fonctions déterministes et non déterministes.

Fonctions permettant d'obtenir des valeurs système de date et d'heure

Toutes les valeurs système de date et d'heure sont dérivées du système d'exploitation de l'ordinateur sur lequel l'instance de SQL Server s'exécute.

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

SQL Server 2008 R2 obtient les valeurs d'heure et de date système 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. La précision de cette API est fixée à 100 nanosecondes. La précision peut être déterminée en utilisant l'API Windows GetSystemTimeAdjustment().

Fonction

Syntaxe

Valeur de retour

Type de données de retour

Propriété de déterminisme

SYSDATETIME

SYSDATETIME ()

Retourne une valeur datetime2(7) qui contient la date et l'heure de l'ordinateur sur lequel s'exécute l'instance de SQL Server. Le décalage de fuseau horaire n'est pas inclus.

datetime2(7)

Non déterministe

SYSDATETIMEOFFSET

SYSDATETIMEOFFSET ()

Retourne une valeur datetimeoffset(7) qui contient la date et l'heure de l'ordinateur sur lequel s'exécute l'instance de SQL Server. Le décalage de fuseau horaire est inclus.

datetimeoffset(7)

Non déterministe

SYSUTCDATETIME

SYSUTCDATETIME ( )

Retourne une valeur datetime2(7) qui contient la date et l'heure de l'ordinateur sur lequel s'exécute l'instance de SQL Server. La date et l'heure sont retournées en 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 datetime2(7) qui contient la date et l'heure de l'ordinateur sur lequel s'exécute l'instance de SQL Server. Le décalage de fuseau horaire n'est pas inclus.

datetime

Non déterministe

GETDATE

GETDATE ( )

Retourne une valeur datetime2(7) qui contient la date et l'heure de l'ordinateur sur lequel s'exécute l'instance de SQL Server. Le décalage de fuseau horaire n'est pas inclus.

datetime

Non déterministe

GETUTCDATE

GETUTCDATE ( )

Retourne une valeur datetime2(7) qui contient la date et l'heure de l'ordinateur sur lequel s'exécute l'instance de SQL Server. La date et l'heure sont retournées en heure UTC (Temps universel coordonné).

datetime

Non déterministe

Fonctions permettant d'obtenir des parties de date et d'heure

Fonction

Syntaxe

Valeur de retour

Type de données de retour

Propriété de déterminisme

DATENAME

DATENAME ( datepart , date )

Retourne une chaîne de caractères qui représente la datepart précisée de la date spécifiée.

nvarchar

Non déterministe

DATEPART

DATEPART ( datepart, date )

Retourne un entier qui représente la datepart précisée de la date spécifiée.

int

Non déterministe

DAY

DAY ( date )

Retourne un entier qui représente la partie jour de la date spécifiée

int

Déterministe

MONTH

MONTH ( date )

Retourne un entier qui représente la partie mois d'une date spécifiée.

int

Déterministe

YEAR

YEAR ( date )

Retourne un entier qui représente la partie année d'une date spécifiée.

int

Déterministe

Fonctions permettant d'obtenir les différences 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 datepartde date ou d'heure traversées entre deux dates spécifiées.

int

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 datespécifiée.

Type de données de l'argument date.

Déterministe

SWITCHOFFSET

SWITCHOFFSET (DATETIMEOFFSET , time_zone)

SWITCHOFFSET change la valeur de décalage de fuseau horaire DATETIMEOFFSET et préserve par la valeur UTC.

datetimeoffset avec la précision de fraction de l'argument DATETIMEOFFSET

Déterministe

TODATETIMEOFFSET

TODATETIMEOFFSET (expression , time_zone)

TODATETIMEOFFSET transforme une valeur datetime2 en une valeur datetimeoffset. La valeur datetime2 est interprétée en heure locale pour le time_zone spécifié.

datetimeoffset avec la précision de fraction de l'argument datetime.

Déterministe

Fonctions permettant de définir ou d'obtenir un 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 un nombre allant de 1 à 7 au premier jour de la semaine.

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 est une valeur de date ou d'heure valide.

int

ISDATE est déterministe uniquement si elle est utilisée avec la fonction CONVERT, lorsque le paramètre de style CONVERT est spécifié et que le style est différent de 0, 100, 9 ou 109.

Rubriques relatives à la date et à l'heure

Rubrique

Description

Utilisation des données de date et d'heure

Fournit des informations et des exemples communs aux types de données et fonctions de date et d'heure.

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édaction d'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'une langue à l'autre ou qui prennent en charge plusieurs langues.

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.

Mappage des types de données à l'aide des requêtes distribuées

Fournit des informations sur la façon dont les types de données de date et d'heure affectent les requêtes distribuées entre les serveurs qui ont des versions différentes de SQL Server ou des fournisseurs différents.