Partage via


smalldatetime (Transact-SQL)

s’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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