smalldatetime (Transact-SQL)smalldatetime (Transact-SQL)

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database ouiAzure SQL Data Warehouse ouiParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Définit une date qui est associée à une heure de la journée.Defines a date that is combined with a time of day. 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.The time is based on a 24-hour day, with seconds always zero (:00) and without fractional seconds.

Notes

Utilisez les types de données time, date, datetime2 et datetimeoffset pour une nouvelle tâche.Use the time, date, datetime2 and datetimeoffset data types for new work. Ces types s'alignent sur la norme SQL.These types align with the SQL Standard. Ils sont plus portables.They are more portable. time, datetime2 et datetimeoffset offrent une meilleure précision à la seconde.time, datetime2 and datetimeoffset provide more seconds precision. datetimeoffset fournit la prise en charge des fuseaux horaires pour les applications globalement déployées.datetimeoffset provides time zone support for globally deployed applications.

Description de smalldatetimesmalldatetime description

SyntaxeSyntax smalldatetimesmalldatetime
UtilisationUsage DECLARE @MySmalldatetime smalldatetimeDECLARE @MySmalldatetime smalldatetime

CREATE TABLE Table1 ( Column1 smalldatetime )CREATE TABLE Table1 ( Column1 smalldatetime )
Formats de littéraux de chaîne par défautDefault string literal formats

(utilisé pour le client de bas niveau)(used for down-level client)
Non applicableNot applicable
Plage de datesDate range 1900-01-01 à 2079-06-061900-01-01 through 2079-06-06

Du 1er janvier 1900 au 6 juin 2079January 1, 1900, through June 6, 2079
Plage temporelleTime range 00:00:00 à 23:59:5900:00:00 through 23:59:59

2007-05-09 23:59:59 sera arrondi à2007-05-09 23:59:59 will round to

2007-05-10 00:00:002007-05-10 00:00:00
Plages d'élémentsElement ranges AAAA comprend quatre chiffres, entre 1900 et 2079, qui représentent une année.YYYY is four digits, ranging from 1900, to 2079, that represent a year.

MM comprend deux chiffres, entre 01 et 12, qui représentent un mois de l’année spécifiée.MM is two digits, ranging from 01 to 12, that represent a month in the specified year.

DD comprend deux chiffres, entre 01 et 31 selon le mois, qui représentent un jour du mois spécifié.DD is two digits, ranging from 01 to 31 depending on the month, that represent a day of the specified month.

hh comprend deux chiffres, entre 00 et 23, qui représentent l'heure.hh is two digits, ranging from 00 to 23, that represent the hour.

mm comprend deux chiffres, entre 00 et 59, qui représentent la minute.mm is two digits, ranging from 00 to 59, that represent the minute.

ss comprend deux chiffres, entre 00 et 59, qui représentent la seconde.ss is two digits, ranging from 00 to 59, that represent the second. Les valeurs inférieures ou égales à 29,998 secondes sont arrondies à la minute inférieure.Values that are 29.998 seconds or less are rounded down to the nearest minute. Les valeurs supérieures ou égales à 29,999 secondes sont arrondies à la minute supérieure.Values of 29.999 seconds or more are rounded up to the nearest minute.
Longueur de caractèreCharacter length 19 positions au maximum19 positions maximum
Taille de stockageStorage size 4 octets, fixe.4 bytes, fixed.
PrécisionAccuracy Une minuteOne minute
Valeur par défautDefault value 1900-01-01 00:00:001900-01-01 00:00:00
CalendrierCalendar GrégorienGregorian

(N’inclut pas la plage complète des années.)(Doesn't include the complete range of years.)
Précision à la fraction de seconde définie par l'utilisateurUser-defined fractional second precision NonNo
Prise en charge et conservation du décalage de fuseau horaireTime zone offset aware and preservation NonNo
Prise en charge de l'heure d'étéDaylight saving aware NonNo

Conformité ANSI et ISO 8601ANSI and ISO 8601 Compliance

smalldatetime n’est pas conforme au format ANSI ou ISO 8601.smalldatetime isn't ANSI or ISO 8601 compliant.

Conversion de données date et timeConverting date and time data

Lorsque vous effectuez une conversion vers des types de données date et heure, SQL ServerSQL Server rejette toutes les valeurs qu’il ne reconnaît pas comme des dates ou des heures.When you convert to date and time data types, SQL ServerSQL Server rejects all values it can't recognize as dates or times. Pour plus d’informations sur l’utilisation des fonctions CAST et CONVERT avec des données date et time, consultez CAST et CONVERT (Transact-SQL).For information about using the CAST and CONVERT functions with date and time data, see CAST and CONVERT (Transact-SQL).

Conversion de smalldatetime en d’autres types de données date et timeConverting smalldatetime to other date and time types

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.This section describes what occurs when a smalldatetime data type is converted to other date and time data types.

Dans le cas d’une conversion en date, l’année, le mois et le jour sont copiés.For a conversion to date, the year, month, and day are copied. Le code suivant montre les résultats de la conversion d'une valeur smalldatetime en valeur date.The following code shows the results of converting a smalldatetime value to a date value.

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)  

Dans le cas d’une conversion en time(n) , les heures, minutes et secondes sont copiées.When the conversion is to time(n), the hours, minutes, and seconds are copied. Les fractions de seconde sont définies sur 0.The fractional seconds are set to 0. Le code suivant montre les résultats de la conversion d'une valeur smalldatetime en valeur time(4).The following code shows the results of converting a smalldatetime value to a time(4) value.

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)  

Dans le cas d’une conversion en datetime, la valeur smalldatetime est copiée dans la valeur datetime.When the conversion is to datetime, the smalldatetime value is copied to the datetime value. Les fractions de seconde sont définies sur 0.The fractional seconds are set to 0. Le code suivant montre les résultats de la conversion d'une valeur smalldatetime en valeur datetime.The following code shows the results of converting a smalldatetime value to a datetime value.

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 dans la valeur datetimeoffset(n) .For a conversion to datetimeoffset(n), the smalldatetime value is copied to the datetimeoffset(n) value. Les fractions de seconde sont définies sur 0 et le décalage de fuseau horaire est défini sur +00:0.The fractional seconds are set to 0, and the time zone offset is set to +00:0. Le code suivant montre les résultats de la conversion d'une valeur smalldatetime en valeur datetimeoffset(4).The following code shows the results of converting a smalldatetime value to a datetimeoffset(4) value.

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)  

Dans le cas d’une conversion en datetime2(n) , la valeur smalldatetime est copiée dans la valeur datetime2(n) .For the conversion to datetime2(n), the smalldatetime value is copied to the datetime2(n) value. Les fractions de seconde sont définies sur 0.The fractional seconds are set to 0. Le code suivant montre les résultats de la conversion d'une valeur smalldatetime en valeur datetime2(4).The following code shows the results of converting a smalldatetime value to a datetime2(4) value.

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)  

ExemplesExamples

A.A. Conversion de littéraux de chaîne avec secondes en smalldatetimeCasting string literals with seconds to smalldatetime

L'exemple suivant compare la conversion de secondes dans les littéraux de chaîne en smalldatetime.The following example compares the conversion of seconds in string literals to 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éeInput SortieOutput
2007-05-08 12:35:292007-05-08 12:35:29 2007-05-08 12:35:002007-05-08 12:35:00
2007-05-08 12:35:302007-05-08 12:35:30 2007-05-08 12:36:002007-05-08 12:36:00
2007-05-08 12:59:59.9982007-05-08 12:59:59.998 2007-05-08 13:00:002007-05-08 13:00:00

B.B. Comparaison de types de données date et timeComparing date and time data types

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.The following example compares the results of casting a string to each date and time data type.

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éesData type SortieOutput
timetime 12:35:29.12:35:29. 12345671234567
datedate 2007-05-082007-05-08
smalldatetimesmalldatetime 2007-05-08 12:35:002007-05-08 12:35:00
datetimedatetime 2007-05-08 12:35:29.1232007-05-08 12:35:29.123
datetime2datetime2 2007-05-08 12:35:29.2007-05-08 12:35:29. 12345671234567
datetimeoffsetdatetimeoffset 2007-05-08 12:35:29.1234567 +12:152007-05-08 12:35:29.1234567 +12:15

Voir aussiSee also

CAST et CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL)