smalldatetime (Transact-SQL)
s’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
base de données SQL dans Microsoft Fabric
Définit une date qui est associée à une heure de la journée. L’heure est basée sur un jour de 24 heures, avec toujours zéro (:00
) et sans fraction de secondes.
Notes
Utilisez l’heure , date, datetime2et types de données datetimeoffset pour le nouveau travail. Ces types s’alignent sur la norme SQL, car 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
Propriété | Valeur |
---|---|
syntaxe | smalldatetime |
d’utilisation | DECLARE @MySmallDateTime SMALLDATETIME; CREATE TABLE Table1 (Column1 SMALLDATETIME); |
formats littéral de chaîne par défaut (utilisé pour le client de bas niveau) |
Non applicable |
plage de dates |
1900-01-01 via 2079-06-06 Du 1er janvier 1900 au 6 juin 2079 |
intervalle de temps |
00:00:00 via 23:59:59 2024-05-09 23:59:59 arrondis à 2024-05-10 00:00:00 |
plages d’éléments |
yyyy est de quatre chiffres, allant de 1900 à 2079, qui représente une année.MM est de deux chiffres, compris entre 01 et 12, qui représente un mois dans l’année spécifiée.dd est de deux chiffres, compris entre 01 et 31 selon le mois, qui représente un jour du mois spécifié.HH est de deux chiffres, compris entre 00 et 23, qui représente l’heure.mm est de deux chiffres, compris entre 00 et 59, qui représente la minute.ss est deux chiffres, compris entre 00 et 59, qui représente la seconde. Les valeurs inférieures ou égales à 29,998 secondes sont arrondies à la minute inférieure. Les valeurs supérieures ou égales à 29,999 secondes sont arrondies à la minute supérieure. |
longueur de caractères | 19 positions au maximum |
taille de stockage | 4 octets, fixes |
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 fractionnaire définie par l’utilisateur | Non |
décalage de fuseau horaire prenant en charge et de conservation | Non |
la prise en charge de l’enregistrement d’été | Non |
Conformité ANSI et ISO 8601
smalldatetime n’est pas conforme au format ANSI ou ISO 8601.
Convertir des 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 reconnaît pas 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, consultez CAST et CONVERT.
Convertir smalldatetime en d’autres types de date et d’heure
Cette section décrit ce qui se produit quand un type de données smalldatetime est converti en d’autres types de données date et time.
Dans le cas d’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 valeur date.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @date AS DATE = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@date AS 'date';
Voici le jeu de résultats.
@smalldatetime date
--------------------- ----------
1955-12-13 12:43:00 1955-12-13
Lorsque la conversion est en heure(n), les heures, les minutes et les 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).
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @time AS TIME (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@time AS 'time';
Voici le jeu de résultats.
@smalldatetime time
----------------------- -------------
1955-12-13 12:43:00 12:43:00.0000
Dans le cas d’une conversion en datetime, la valeur smalldatetime est copiée dans la valeur 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.
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetime AS DATETIME = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetime AS 'datetime';
Voici le jeu de résultats.
@smalldatetime datetime
----------------------- -----------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.000
Pour une conversion en datetimeoffset(n), la valeur smalldatetime est copiée dans la valeur 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).
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetimeoffset AS DATETIMEOFFSET (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetimeoffset AS 'datetimeoffset(4)';
Voici le jeu de résultats.
@smalldatetime datetimeoffset(4)
--------------------- ------------------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.0000 +00:0
Dans le cas d’une conversion en datetime2(n) , la valeur smalldatetime est copiée dans la valeur 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).
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetime2 AS DATETIME2 (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetime2 AS ' datetime2(4)';
Voici le jeu de résultats.
@smalldatetime datetime2(4)
--------------------- ------------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.0000
Exemples
R. Caster des littéraux de chaîne avec des secondes en smalldatetime
L’exemple suivant compare la conversion de secondes dans les littéraux de chaîne à smalldatetime.
SELECT CAST ('2024-05-08 12:35:29' AS SMALLDATETIME),
CAST ('2024-05-08 12:35:30' AS SMALLDATETIME),
CAST ('2024-05-08 12:59:59.998' AS SMALLDATETIME);
Entrée | Output |
---|---|
2024-05-08 12:35:29 |
2024-05-08 12:35:00 |
2024-05-08 12:35:30 |
2024-05-08 12:36:00 |
2024-05-08 12:59:59.998 |
2024-05-08 13:00:00 |
B. Comparer les 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 date et time.
SELECT CAST ('2024-05-08 12:35:29.1234567 +12:15' AS TIME (7)) AS 'time',
CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATE) AS 'date',
CAST ('2024-05-08 12:35:29.123' AS SMALLDATETIME) AS 'smalldatetime',
CAST ('2024-05-08 12:35:29.123' AS DATETIME) AS 'datetime',
CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATETIME2 (7)) AS 'datetime2',
CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATETIMEOFFSET (7)) AS 'datetimeoffset';
Type de données | Output |
---|---|
time | 12:35:29.1234567 |
date | 2024-05-08 |
smalldatetime | 2024-05-08 12:35:00 |
datetime | 2024-05-08 12:35:29.123 |
datetime2 | 2024-05-08 12:35:29.1234567 |
datetimeoffset | 2024-05-08 12:35:29.1234567 +12:15 |