datetime2 (Transact-SQL)
Définit une date qui est associée à une heure de la journée au format 24 heures. datetime2 peut être considéré comme une extension du type datetime existant qui a une plus grande plage de dates, une plus grande précision fractionnaire par défaut et une précision spécifiée par l'utilisateur facultative.
Pour obtenir une vue d'ensemble de tous les types de données et fonctions de date et d'heure Transact-SQL, consultez Types de données et fonctions de date et d'heure (Transact-SQL). Pour obtenir des informations et des exemples communs aux types de données et fonctions de date et d'heure, consultez Utilisation des données de date et d'heure.
Description de datetime2
Propriété |
Valeur |
---|---|
Syntaxe |
datetime2 [ (fractional seconds precision) ] |
Utilisation |
DECLARE @MyDatetime2 datetime2(7) CREATE TABLE Table1 ( Column1 datetime2(7) ) |
Format de littéral de chaîne par défaut (utilisé pour le client de bas niveau) |
AAAA-MM-JJ hh:mm:ss[.fractions de seconde] Pour plus d'informations, consultez la section « Compatibilité descendante pour les clients de bas niveau » de Utilisation des données de date et d'heure. |
Plage de dates |
0001-01-01 à 9999-12-31 Du 1er janvier de l'an 1 au 31 décembre 9999 |
Plage temporelle |
00:00:00 à 23:59:59.9999999 |
Plage de décalages de fuseau horaire |
Aucun |
Plages d'éléments |
AAAA est un nombre de quatre chiffres, entre 0001 et 9999, qui représente une année. MM est un nombre à deux chiffres, entre 01 et 12, qui représente un mois dans l'année spécifiée. DD est un nombre à deux chiffres, entre 01 et 31 selon le mois, qui représente un jour du mois spécifié. hh est un nombre à deux chiffres, entre 00 et 23, qui représente l'heure. mm est un nombre à deux chiffres, entre 00 et 59, qui représente la minute. ss est un nombre à deux chiffres, entre 00 et 59, qui représente la seconde. n* est un nombre qui comprend entre zéro et sept chiffres, entre 0 et 9999999, qui représente les fractions de seconde. |
Longueur de caractère |
19 positions au minimum (AAAA-MM-JJ hh:mm:ss) et 27 au maximum (AAAA-MM-JJ hh:mm:ss.0000000) |
Précision, échelle |
De 0 à 7 chiffres, avec une précision de 100 ns. La précision par défaut est de 7 chiffres. |
Taille de stockage |
6 octets pour des précisions inférieures à 3 chiffres ; 7 octets pour des précisions égales à 3 et 4 chiffres. Toutes les autres précisions requièrent 8 octets. |
Précision |
100 nanosecondes |
Valeur par défaut |
1900-01-01 00:00:00 |
Calendrier |
Grégorien |
Précision à la fraction de seconde définie par l'utilisateur |
Oui |
Prise en charge et conservation du décalage de fuseau horaire |
Non |
Prise en charge de l'heure d'été |
Non |
Pour afficher les métadonnées de type de données, consultez sys.systypes (Transact-SQL) ou TYPEPROPERTY (Transact-SQL). La précision et l'échelle sont variables pour certains types de données de date et d'heure. Pour obtenir la précision et l'échelle d'une colonne, consultez COLUMNPROPERTY (Transact-SQL), COL_LENGTH (Transact-SQL) ou sys.columns (Transact-SQL).
Formats de littéraux de chaîne pris en charge pour datetime2
Les tableaux suivants répertorient les formats de littéraux de chaîne ISO 8601 et ODBC pris en charge pour datetime2. Pour plus d'informations sur les formats alphabétique, numérique, non séparé et d'heure pour les parties de date et d'heure de datetime2, consultez date (Transact-SQL) et time (Transact-SQL).
ISO 8601 |
Descriptions |
---|---|
AAAA-MM-JJThh:mm:ss[.nnnnnnn] AAAA-MM-JJThh:mm:ss[.nnnnnnn] |
Ce format n'est pas affecté par les paramètres régionaux de session SET LANGUAGE et SET DATEFORMAT. T, le signe deux-points (:) et le point (.) sont inclus dans le littéral de chaîne, par exemple « 2007-05-02T19:58:47.1234567 ». |
ODBC |
Description |
---|---|
{ ts 'aaaa-mm-jj hh:mm:ss[.fractions de seconde]' } |
Spécifique à l'API ODBC :
|
Exemples
L'exemple suivant compare les résultats de la conversion d'une chaîne en chaque type de données de date et time.
SELECT
CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date'
,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS
'smalldatetime'
,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime'
,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS
'datetime2'
,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS
'datetimeoffset';
Voici l'ensemble des résultats.
Type de données |
Sortie |
---|---|
time |
12:35:29. 1234567 |
date |
2007-05-08 |
smalldatetime |
2007-05-08 12:35:00 |
datetime |
2007-05-08 12:35:29.123 |
datetime2 |
2007-05-08 12:35:29. 1234567 |
datetimeoffset |
2007-05-08 12:35:29.1234567 +12:15 |
Voir aussi