smalldatetime (Transact-SQL)
Définit une date qui est associée à une heure de la journée. L'heure est basée sur une journée de 24 heures, les secondes ayant toujours la valeur zéro (:00) et sans fractions de seconde.
[!REMARQUE]
Utilisez les types de données time, date, datetime2 et datetimeoffset pour une nouvelle tâche. Ces types s'alignent sur la norme SQL. Ils sont plus portables. time, datetime2 et datetimeoffset offrent une meilleure précision à la seconde. datetimeoffset fournit la prise en charge des fuseaux horaires pour les applications globalement déployées.
Description de smalldatetime
Syntaxe |
smalldatetime |
Utilisation |
DECLARE @MySmalldatetime smalldatetime CREATE TABLE Table1 ( Column1 smalldatetime ) |
Formats de littéraux de chaîne par défaut (utilisé pour le client de bas niveau) |
Non applicable |
Plage de dates |
1900-01-01 à 2079-06-06 Du 1er janvier 1900 au 6 juin 2079 |
Plage temporelle |
00:00:00 à 23:59:59 2007-05-09 23:59:59 sera arrondi à 2007-05-10 00:00:00 |
Plages d'éléments |
AAAA comprend quatre chiffres, entre 1900 et 2079, qui représentent une année. MM comprend deux chiffres, entre 01 et 12, qui représentent un mois de l'année spécifiée. DD comprend deux chiffres, entre 01 et 31 selon le mois, qui représentent un jour du mois spécifié. hh comprend deux chiffres, entre 00 et 23, qui représentent l'heure. mm comprend deux chiffres, entre 00 et 59, qui représentent la minute. ss comprend deux chiffres, entre 00 et 59, qui représentent la seconde. Les valeurs inférieures ou égales à 29,998 sont arrondies à la minute inférieure ; les valeurs supérieures ou égales à 29,999 sont arrondies à la minute supérieure. |
Longueur de caractère |
19 positions au maximum |
Taille de stockage |
4 octets, fixe. |
Précision |
Une minute |
Valeur par défaut |
1900-01-01 00:00:00 |
Calendrier |
Grégorien (N'inclut pas la plage complète des années.) |
Précision à la fraction de seconde définie par l'utilisateur |
Non |
Prise en charge et conservation du décalage de fuseau horaire |
Non |
Prise en charge de l'heure d'été |
Non |
Conformité ANSI et ISO 8601
smalldatetime n'est pas conforme à ANSI ni à ISO 8601.
Conversion de données de date et d'heure
Lorsque vous effectuez une conversion vers des types de données date et heure, SQL Server rejette toutes les valeurs qu'il ne peut identifier comme dates ou heures. Pour plus d'informations sur l'utilisation des fonctions CAST et CONVERT avec des données de date et d'heure, consultez CAST et CONVERT (Transact-SQL).
Conversion de smalldatetime en d'autres types de date et d'heure
Le tableau suivant décrit ce qui se produit lorsqu'un type de données smalldatetime est converti en d'autres types de données de date et d'heure.
Type de données vers lequel effectuer la conversion |
Détails de conversion |
---|---|
date |
Le jour, le mois et l'année sont copiés. Le code suivant montre les résultats de la conversion d'une valeur smalldatetime en valeur date.
|
time(n) |
Les heures, minutes et secondes sont copiées. Les fractions de seconde sont définies sur 0. Le code suivant montre les résultats de la conversion d'une valeur smalldatetime en valeur time(4).
|
datetime |
La valeur de smalldatetime est copiée dans la valeur de datetime. Les fractions de seconde sont définies sur 0. Le code suivant montre les résultats de la conversion d'une valeur smalldatetime en valeur datetime.
|
datetimeoffset(n) |
La valeur de smalldatetime est copiée dans la valeur de datetimeoffset(n). Les fractions de seconde sont définies sur 0 et le décalage de fuseau horaire est défini sur +00:0. Le code suivant montre les résultats de la conversion d'une valeur smalldatetime en valeur datetimeoffset(4).
|
datetime2(n) |
La valeur de smalldatetime est copiée dans la valeur de datetime2(n). Les fractions de seconde sont définies sur 0. Le code suivant montre les résultats de la conversion d'une valeur smalldatetime en valeur datetime2(4).
|
Exemples
A.Conversion de littéraux de chaîne avec secondes en smalldatetime
L'exemple suivant compare la conversion de secondes dans les littéraux de chaîne en smalldatetime.
SELECT
CAST('2007-05-08 12:35:29' AS smalldatetime)
,CAST('2007-05-08 12:35:30' AS smalldatetime)
,CAST('2007-05-08 12:59:59.998' AS smalldatetime);
Entrée |
Sortie |
---|---|
2007-05-08 12:35:29 |
2007-05-08 12:35:00 |
2007-05-08 12:35:30 |
2007-05-08 12:36:00 |
2007-05-08 12:59:59.998 |
2007-05-08 13:00:00 |
B.Comparaison de types de données de date et d'heure
L'exemple suivant compare les résultats de la conversion d'une chaîne en chaque type de données de date et d'heure.
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';
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 |