- 07/22/2017
- 4 minutes de lecture
-
- M
- j
- c
- M
- m
-
+4
.
S’applique à : SQL Server (toutes les versions prises en charge) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse
Définit une date qui est combinée avec une heure du jour. L’heure est basée sur une journée de 24 heures, avec des secondes toujours nulles (:00) et sans secondes fractionnelles.
Note
Utilisez les types de données time, date, datetime2 et datetimeoffset pour les nouveaux travaux. Ces types s’alignent sur la norme SQL. Ils sont plus portables. time, datetime2 et datetimeoffset fournissent plus de précision en secondes. datetimeoffset fournit un support de fuseau horaire pour les applications déployées mondialement.
smalldatetime description
Propriété | Valeur |
---|---|
Syntaxe | smalldatetime |
Utilisation | DECLARE @MySmalldatetime smalldatetime CREATE TABLE Table1 ( Column1 smalldatetime ) |
Formats littéraux de chaîne par défaut (utilisés pour les clients de niveau inférieur).level client) |
Not applicable |
Date range | 1900-01-01 through 2079-06-06 January 1, 1900 au 6 juin 2079 |
Horaire | 00 :00:00 à 23:59:59 2007-05-09 23:59:59 sera arrondi à 2007-05-10 00:00:00 |
Plage des éléments | YYYY est quatre chiffres, allant de 1900, à 2079, qui représentent une année. MM est deux chiffres, allant de 01 à 12, qui représentent un mois dans l’année spécifiée. DD est deux chiffres, allant de 01 à 31 selon le mois, qui représentent un jour du mois spécifié. hh est deux chiffres, allant de 00 à 23, qui représentent l’heure. mm est deux chiffres, allant de 00 à 59, qui représentent la minute. ss est deux chiffres, allant de 00 à 59, qui représentent la seconde. Les valeurs de 29,998 secondes ou moins sont arrondies à la minute inférieure. Les valeurs de 29,999 secondes ou plus sont arrondies à la minute supérieure. |
Longueur de caractères | 19 positions maximum |
Taille de stockage | 4 octets, fixe. |
Précision | Une minute |
Valeur par défaut | 1900-01-01 00:00:00 |
Calendrier | Grégorien (Ne comprend pas la gamme complète des années.) |
User-défini par l’utilisateur | Non |
Conscience et préservation du décalage horaire | Non |
Conscience de l’heure d’été | Non |
Conformité ANSI et ISO 8601
smalldatetime n’est pas conforme à ANSI ou ISO 8601.
Conversion des données de date et d’heure
Lorsque vous convertissez en types de données de date et d’heure, SQL Server rejette toutes les valeurs qu’il ne peut pas reconnaître comme des dates ou des heures. Pour plus d’informations sur l’utilisation des fonctions CAST et CONVERT avec des données de date et d’heure, voir CAST et CONVERT (Transact-SQL).
Conversion de smalldatetime vers d’autres types de date et d’heure
Cette section décrit ce qui se produit lorsqu’un type de données smalldatetime est converti vers d’autres types de données de date et d’heure.
Pour une conversion en date, l’année, le mois et le jour sont copiés. Le code suivant montre les résultats de la conversion d’une valeur smalldatetime
en une valeur date
.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @date date = @smalldatetime SELECT @smalldatetime AS '@smalldatetime', @date AS 'date'; --Result --@smalldatetime date ------------------------- ---------- --1955-12-13 12:43:00 1955-12-13 -- --(1 row(s) affected)
Lorsque la conversion est en temps(n), les heures, les minutes et les secondes sont copiées. Les secondes fractionnaires sont mises à 0. Le code suivant montre les résultats de la conversion d’une valeur smalldatetime
en une valeur time(4)
.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @time time(4) = @smalldatetime; SELECT @smalldatetime AS '@smalldatetime', @time AS 'time'; --Result --@smalldatetime time ------------------------- ------------- --1955-12-13 12:43:00 12:43:00.0000 -- --(1 row(s) affected)
Lorsque la conversion est en datetime, la valeur smalldatetime est copiée sur la valeur datetime. Les secondes fractionnelles sont fixées à 0. Le code suivant montre les résultats de la conversion d’une valeur smalldatetime
en une valeur datetime
.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @datetime datetime = @smalldatetime; SELECT @smalldatetime AS '@smalldatetime', @datetime AS 'datetime'; --Result --@smalldatetime datetime ------------------------- ----------------------- --1955-12-13 12:43:00 1955-12-13 12:43:00.000 -- --(1 row(s) affected)
Pour une conversion en datetimeoffset(n), la valeur smalldatetime est copiée sur la valeur datetimeoffset(n). Les secondes fractionnelles sont définies à 0, et le décalage du fuseau horaire est défini à +00:0. Le code suivant montre les résultats de la conversion d’une valeur smalldatetime
en une valeur datetimeoffset(4)
.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @datetimeoffset datetimeoffset(4) = @smalldatetime; SELECT @smalldatetime AS '@smalldatetime', @datetimeoffset AS 'datetimeoffset(4)'; --Result --@smalldatetime datetimeoffset(4) ------------------------- ------------------------------ --1955-12-13 12:43:00 1955-12-13 12:43:00.0000 +00:0 -- --(1 row(s) affected)
Pour la conversion en datetime2(n), la valeur smalldatetime est copiée sur la valeur datetime2(n). Les secondes fractionnelles sont définies à 0. Le code suivant montre les résultats de la conversion d’une valeur smalldatetime
en une valeur datetime2(4)
.
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @datetime2 datetime2(4) = @smalldatetime; SELECT @smalldatetime AS '@smalldatetime', @datetime2 AS ' datetime2(4)'; --Result --@smalldatetime datetime2(4) ------------------------- ------------------------ --1955-12-13 12:43:00 1955-12-13 12:43:00.0000 -- --(1 row(s) affected)
Exemples
A. Casting string literals with seconds to smalldatetime
L’exemple suivant compare la conversion des secondes dans les chaînes de caractères 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);
Input | Output |
---|---|
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 des types de données de date et d’heure
L’exemple suivant compare les résultats du moulage d’une chaîne de caractères à 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';