time (Transact-SQL)time (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 heure d'un jour.Defines a time of a day. L'heure ne prend pas en charge les fuseaux horaires et se présente au format 24 heures.The time is without time zone awareness and is based on a 24-hour clock.

Notes

Des informations sur Informatica sont fournies pour les clients PDW utilisant le connecteur Informatica.Informatica information is provided for PDW customers using the Informatica Connector.

Description de timetime Description

PropriétéProperty ValeurValue
SyntaxeSyntax time [ (échelle de fractions de seconde) ]time [ (fractional second scale) ]
UtilisationUsage DECLARE @MyTime time(7)DECLARE @MyTime time(7)

CREATE TABLE Table1 ( Column1 time(7) )CREATE TABLE Table1 ( Column1 time(7) )
échelle de fractions de secondefractional seconds scale Spécifie le nombre de chiffres pour la partie fractionnaire des secondes.Specifies the number of digits for the fractional part of the seconds.

Il peut s'agir d'un entier compris entre 0 et 7.This can be an integer from 0 to 7. Pour Informatica, il peut s’agir d’un entier compris entre 0 et 3.For Informatica, this can be an integer from 0 to 3.

L’échelle de fractions par défaut est 7 (100 ns).The default fractional scale is 7 (100ns).
Format de littéral de chaîne par défautDefault string literal format

(utilisé pour le client de bas niveau)(used for down-level client)
hh:mm:ss[.nnnnnnn] pour Informatica)hh:mm:ss[.nnnnnnn] for Informatica)

Pour plus d’informations, consultez la section Compatibilité descendante pour les clients de bas niveau.For more information, see the Backward Compatibility for Down-level Clients section.
PlageRange 00:00:00.0000000 à 23:59:59.9999999 (00:00:00.000 à 23:59:59.999 pour Informatica)00:00:00.0000000 through 23:59:59.9999999 (00:00:00.000 through 23:59:59.999 for Informatica)
Plages d'élémentsElement ranges hh comprend deux chiffres, entre 0 et 23, qui représentent l'heure.hh is two digits, ranging from 0 to 23, that represent the hour.

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

ss comprend deux chiffres, entre 0 et 59, qui représentent la seconde.ss is two digits, ranging from 0 to 59, that represent the second.

n* comprend entre zéro et sept chiffres, entre 0 et 9999999, qui représentent les fractions de seconde.n* is zero to seven digits, ranging from 0 to 9999999, that represent the fractional seconds. Pour Informatica, n* comprend entre zéro et trois chiffres, entre 0 et 999.For Informatica, n* is zero to three digits, ranging from 0 to 999.
Longueur de caractèreCharacter length 8 positions au minimum (hh:mm:ss) à 16 au maximum (hh:mm:ss.nnnnnnn).8 positions minimum (hh:mm:ss) to 16 maximum (hh:mm:ss.nnnnnnn). Pour Informatica, 12 au maximum (hh:mm:ss.nnn).For Informatica, the maximum is 12 (hh:mm:ss.nnn).
Précision, échellePrecision, scale

(l'utilisateur spécifie l'échelle uniquement)(user specifies scale only)
Consultez le tableau ci-dessous.See the table below.
Taille de stockageStorage size 5 octets, fixes, sont la valeur par défaut avec une précision à la fraction de seconde de 100 ns par défaut.5 bytes, fixed, is the default with the default of 100ns fractional second precision. Dans Informatica, 4 octets, fixes, sont la valeur par défaut avec une précision à la fraction de seconde de 1 ms par défaut.In Informatica, the default is 4 bytes, fixed, with the default of 1ms fractional second precision.
PrécisionAccuracy 100 nanosecondes (1 milliseconde dans Informatica)100 nanoseconds (1 millisecond in Informatica)
Valeur par défautDefault value 00:00:0000:00:00

Cette valeur est utilisée pour la partie heure ajoutée pour la conversion implicite de date en datetime2 ou datetimeoffset.This value is used for the appended time part for implicit conversion from date to datetime2 or datetimeoffset.
Précision à la fraction de seconde définie par l'utilisateurUser-defined fractional second precision OuiYes
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
Échelle spécifiéeSpecified scale Résultat (précision, échelle)Result (precision, scale) Longueur de colonne (octets)Column length (bytes) FractionFractional

secondesseconds

precisionprecision
timetime (16,7) [(12,3) dans Informatica](16,7) [(12,3) in Informatica] 5 (4 dans Informatica)5 (4 in Informatica) 7 (3 dans Informatica)7 (3 in Informatica)
time(0)time(0) (8,0)(8,0) 33 0-20-2
time(1)time(1) (10,1)(10,1) 33 0-20-2
time(2)time(2) (11,2)(11,2) 33 0-20-2
time(3)time(3) (12,3)(12,3) 44 3-43-4
time(4)time(4)

Pas de prise en charge dans Informatica.Not supported in Informatica.
(13,4)(13,4) 44 3-43-4
time(5)time(5)

Pas de prise en charge dans Informatica.Not supported in Informatica.
(14,5)(14,5) 55 5-75-7
time(6)time(6)

Pas de prise en charge dans Informatica.Not supported in Informatica.
(15,6)(15,6) 55 5-75-7
time(7)time(7)

Pas de prise en charge dans Informatica.Not supported in Informatica.
(16,7)(16,7) 55 5-75-7

Formats de littéraux de chaîne pris en charge pour l'heureSupported String Literal Formats for time

Le tableau suivant affiche les formats de littéraux de chaîne valides pour le type de données time.The following table shows the valid string literal formats for the time data type.

SQL ServerSQL Server DescriptionDescription
hh:mm[:ss][:fractions de seconde][AM][PM]hh:mm[:ss][:fractional seconds][AM][PM]

hh:mm[:ss][.fractions de seconde][AM][PM]hh:mm[:ss][.fractional seconds][AM][PM]

hhAM[PM]hhAM[PM]

hh AM[PM]hh AM[PM]
La valeur d'heure 0 représente l'heure après minuit (AM), que l'élément AM soit ou non spécifié.The hour value of 0 represents the hour after midnight (AM), regardless of whether AM is specified. PM ne peut pas être spécifié quand l'heure est égale à 0.PM cannot be specified when the hour equals 0.

Les valeurs d'heure comprises entre 01 et 11 représentent les heures avant midi si ni AM ni PM n'est spécifié.Hour values from 01 through 11 represent the hours before noon if neither AM nor PM is specified. Elles représentent les heures avant midi si AM est spécifiéThe values represent the hours before noon when AM is specified. et les heures après midi si PM est spécifié.The values represent hours after noon if PM is specified.

La valeur 12 pour les heures représente l'heure qui démarre à midi si ni AM ni PM n'est spécifié.The hour value 12 represents the hour that starts at noon if neither AM nor PM is specified. Elle représente l'heure qui démarre à minuit si AM est spécifiéIf AM is specified, the value represents the hour that starts at midnight. et l'heure qui démarre à midi si PM est spécifié.If PM is specified, the value represents the hour that starts at noon. Par exemple, 12:01 correspond à 1 minute après midi, comme 12:01 PM, alors que 12:01 AM équivaut à 1 minute après minuit.For example, 12:01 is 1 minute after noon, as is 12:01 PM; and 12:01 AM is one minute after midnight. La spécification de 12:01 AM équivaut à 00:01 ou 00:01 AM.Specifying 12:01 AM is the same as specifying 00:01 or 00:01 AM.

Les heures situées entre 13 et 23 représentent les heures après midi si ni AM ni PM n'est spécifié.Hour values from 13 through 23 represent hours after noon if AM or PM is not specified. Les valeurs représentent également les heures après midi si PM est spécifié.The values also represent the hours after noon when PM is specified. Vous ne pouvez pas spécifier AM lorsque la valeur d'heure est comprise entre 13 et 23.AM cannot be specified when the hour value is from 13 through 23.

Une valeur d'heure de 24 n'est pas valide.An hour value of 24 is not valid. Pour représenter minuit, utilisez 12:00 AM ou 00:00.To represent midnight, use 12:00 AM or 00:00.

Les millisecondes peuvent être précédées du signe deux-points (:) ou d'un point (.).Milliseconds can be preceded by either a colon (:) or a period (.). Si le signe deux-points est utilisé, il s'agit de millièmes de secondes.If a colon is used, the number means thousandths-of-a-second. Si le point est utilisé, un chiffre unique représente un dixième de seconde, deux chiffres un centième et trois chiffres un millième.If a period is used, a single digit means tenths-of-a-second, two digits mean hundredths-of-a-second, and three digits mean thousandths-of-a-second. Par exemple, 12:30:20:1 indique 20 secondes et un millième après 12:30 ; 12:30:20.1 indique 20 secondes et un dixième après 12:30.For example, 12:30:20:1 indicates 20 and one-thousandth seconds past 12:30; 12:30:20.1 indicates 20 and one-tenth seconds past 12:30.
ISO 8601ISO 8601 RemarquesNotes
hh:mm:sshh:mm:ss

hh:mm[:ss][.fractions de seconde]hh:mm[:ss][.fractional seconds]
hh comprend deux chiffres, entre 0 et 23, qui représentent le nombre d'heures dans le décalage de fuseau horaire.hh is two digits, ranging from 0 to 23, that represent the number of hours in the time zone offset.

mm comprend deux chiffres, entre 0 et 59, qui représentent le nombre de minutes supplémentaires dans le décalage de fuseau horaire.mm is two digits, ranging from 0 to 59, that represent the number of additional minutes in the time zone offset.
ODBCODBC RemarquesNotes
{t 'hh:mm:ss[.fractions de seconde]'}{t 'hh:mm:ss[.fractional seconds]'} Spécifique à l'API ODBC.ODBC API specific.

Conformité avec les normes ANSI et ISO 8601Compliance with ANSI and ISO 8601 Standards

L'utilisation de l'heure 24 pour représenter minuit et du saut de seconde au-delà de 59 comme défini par ISO 8601 (5.3.2 et 5.3) n'est pas prise en charge comme étant à compatibilité descendante et cohérente avec les types de date et d'heure existants.Using hour 24 to represent midnight and leap second over 59 as defined by ISO 8601 (5.3.2 and 5.3) are not supported to be backward compatible and consistent with the existing date and time types.

Le format de littéral de chaîne par défaut (utilisé pour le client de bas niveau) s'alignera avec le format standard SQL qui est défini comme hh:mm:ss[.nnnnnnn].The default string literal format (used for down-level client) will align with the SQL standard form, which is defined as hh:mm:ss[.nnnnnnn]. Ce format ressemble à la définition ISO 8601 pour TIME à l'exclusion des fractions de seconde.This format resembles the ISO 8601 definition for TIME excluding fractional seconds.

Compatibilité descendante pour les clients de bas niveauBackward Compatibility for Down-level Clients

Certains clients de bas niveau ne prennent pas en charge les types de données time, date, datetime2 et datetimeoffset.Some down-level clients do not support the time, date, datetime2 and datetimeoffset data types. Le tableau suivant présente le type de mappage entre une instance de haut niveau de SQL ServerSQL Server et des clients de bas niveau.The following table shows the type mapping between an up-level instance of SQL ServerSQL Server and down-level clients.

Type de données SQL ServerSQL ServerSQL ServerSQL Server data type Format de littéral de chaîne par défaut passé au client de bas niveauDefault string literal format passed to down-level client ODBC de bas niveauDown-level ODBC OLEDB de bas niveauDown-level OLEDB JDBC de bas niveauDown-level JDBC SQLCLIENT de bas niveauDown-level SQLCLIENT
timetime hh:mm:ss [.nnnnnnn]hh:mm:ss[.nnnnnnn] SQL_WVARCHAR ou SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR ou DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String String ou SqStringString or SqString
datedate AAAA-MM-JJYYYY-MM-DD SQL_WVARCHAR ou SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR ou DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String String ou SqStringString or SqString
datetime2datetime2 AAAA-MM-JJ hh:mm:ss[.nnnnnnn]YYYY-MM-DD hh:mm:ss[.nnnnnnn] SQL_WVARCHAR ou SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR ou DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String String ou SqStringString or SqString
datetimeoffsetdatetimeoffset AAAA-MM-JJ hh:mm:ss[.nnnnnnn] [+|-]hh:mmYYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm SQL_WVARCHAR ou SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR ou DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String String ou SqStringString or SqString

Conversion de données de date et d'heureConverting 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 peut identifier comme dates ou heures.When you convert to date and time data types, SQL ServerSQL Server rejects all values it cannot 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 types de données time(n) vers d'autres types de date et d'heureConverting time(n) Data Type to Other Date and Time Types

Cette section décrit ce qui se produit quand un type de données time est converti en d’autres types de données date et time.This section describes what occurs when a time data type is converted to other date and time data types.

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 hour, minute, and seconds are copied. Lorsque la précision de destination est inférieure à la précision source, les fractions de seconde sont arrondies selon la précision de destination.When the destination precision is less than the source precision, the fractional seconds is rounded up to fit the destination precision. L'exemple suivant montre les résultats de la conversion d'une valeur time(4) en valeur time(3).The following example shows the results of converting a time(4) value to a time(3) value.

DECLARE @timeFrom time(4) = '12:34:54.1237';  
DECLARE @timeTo time(3) = @timeFrom;  
  
SELECT @timeTo AS 'time(3)', @timeFrom AS 'time(4)';  
  
--Results  
--time(3)      time(4)  
-------------- -------------  
--12:34:54.124 12:34:54.1237  
--  
--(1 row(s) affected)  

Dans le cas d’une conversion en date, la conversion échoue et le message d’erreur 206 est généré : « Conflit de types d’opérandes : date est incompatible avec time ».If the conversion is to date, the conversion fails, and error message 206 is raised: "Operand type clash: date is incompatible with time".

Dans le cas d’une conversion en datetime, les valeurs d’heures, de minutes et de secondes sont copiées et le composant date est défini sur « 1900-01-01 ».When the conversion is to datetime, hour, minute, and second values are copied; and the date component is set to '1900-01-01'. Quand la précision à la fraction de seconde de la valeur time(n) est supérieure à trois chiffres, le résultat datetime est tronqué.When the fractional seconds precision of the time(n) value is greater than three digits, the datetime result will be truncated. Le code suivant montre les résultats de la conversion d'une valeur time(4) en valeur datetime.The following code shows the results of converting a time(4) value to a datetime value.

DECLARE @time time(4) = '12:15:04.1237';  
DECLARE @datetime datetime= @time;  
SELECT @time AS '@time', @datetime AS '@datetime';  
  
--Result  
--@time         @datetime  
--------------- -----------------------  
--12:15:04.1237 1900-01-01 12:15:04.123  
--  
--(1 row(s) affected)  
  

Dans le cas d’une conversion en smalldatetime, la date est définie sur « 1900-01-01 » et les valeurs d’heures et de minutes sont arrondies.When the conversion is to smalldatetime, the date is set to '1900-01-01', and the hour and minute values are rounded up. Les secondes et fractions de seconde sont définies sur 0.The seconds and fractional seconds are set to 0. Le code suivant montre les résultats de la conversion d'une valeur time(4) en valeur smalldatetime.The following code shows the results of converting a time(4) value to a smalldatetime value.

-- Shows rounding up of the minute value.  
DECLARE @time time(4) = '12:15:59.9999';   
DECLARE @smalldatetime smalldatetime= @time;    
SELECT @time AS '@time', @smalldatetime AS '@smalldatetime';   
  
--Result  
@time            @smalldatetime  
---------------- -----------------------  
12:15:59.9999    1900-01-01 12:16:00--  
--(1 row(s) affected)  
  
-- Shows rounding up of the hour value.  
DECLARE @time time(4) = '12:59:59.9999';   
DECLARE @smalldatetime smalldatetime= @time;    
  
SELECT @time AS '@time', @smalldatetime AS '@smalldatetime';  
@time            @smalldatetime  
---------------- -----------------------  
12:59:59.9999    1900-01-01 13:00:00  
  
(1 row(s) affected)  
  

Dans le cas d’une conversion en datetimeoffset(n) , la date est définie sur « 1900-01-01 » et l’heure est copiée.If the conversion is to datetimeoffset(n), the date is set to '1900-01-01', and the time is copied. Le décalage de fuseau horaire est défini sur +00:00.The time zone offset is set to +00:00. Quand la précision à la fraction de seconde de la valeur time(n) est supérieure à la précision de la valeur datetimeoffset(n) , la valeur est arrondie en conséquence.When the fractional seconds precision of the time(n) value is greater than the precision of the datetimeoffset(n) value, the value is rounded up to fit. L'exemple suivant montre les résultats de la conversion d'une valeur time(4) en type datetimeoffset(3).The following example shows the results of converting a time(4) value to a datetimeoffset(3) type.

DECLARE @time time(4) = '12:15:04.1237';  
DECLARE @datetimeoffset datetimeoffset(3) = @time;  
  
SELECT @time AS '@time', @datetimeoffset AS '@datetimeoffset';  
  
--Result  
--@time         @datetimeoffset  
--------------- ------------------------------  
--12:15:04.1237 1900-01-01 12:15:04.124 +00:00  
--  
--(1 row(s) affected)  
  

Dans le cas d’une conversion en datetime2(n) , la date est définie sur « 1900-01-01 », le composant heure est copié et le décalage de fuseau horaire est défini sur 00:00.When converting to datetime2(n), the date is set to '1900-01-01', the time component is copied, and the time zone offset is set to 00:00. Quand la précision à la fraction de seconde de la valeur datetime2(n) est supérieure à la valeur time(n) , la valeur est arrondie en conséquence.When the fractional seconds precision of the datetime2(n) value is greater than the time(n) value, the value will be rounded up to fit. L'exemple suivant montre les résultats de la conversion d'une valeur time(4) en valeur datetime2(2).The following example shows the results of converting a time(4) value to a datetime2(2) value.

DECLARE @time time(4) = '12:15:04.1237';  
DECLARE @datetime2 datetime2(3) = @time;  
  
SELECT @datetime2 AS '@datetime2', @time AS '@time';  
  
--Result  
--@datetime2              @time  
------------------------- -------------  
--1900-01-01 12:15:04.124 12:15:04.1237  
--  
--(1 row(s) affected)  

Conversion de littéraux de chaîne en time(n)Converting String Literals to time(n)

Les conversions de littéraux de chaîne en types de date et d'heure sont autorisées si toutes les parties des chaînes sont dans des formats valides.Conversions from string literals to date and time types are permitted if all parts of the strings are in valid formats. Sinon, une erreur d'exécution est déclenchée.Otherwise, a runtime error is raised. Les conversions implicites ou explicites qui ne spécifient pas de style à partir de types de date et d'heure en littéraux de chaîne seront au format par défaut de la session active.Implicit conversions or explicit conversions that do not specify a style, from date and time types to string literals will be in the default format of the current session. Le tableau suivant montre les règles de conversion d’un littéral de chaîne en type de données time.The following table shows the rules for converting a string literal to the time data type.

Littéral de chaîne d'entréeInput string literal Règle de conversionConversion Rule
ODBC DATEODBC DATE Les littéraux de chaîne ODBC sont mappés au type de données datetime.ODBC string literals are mapped to the datetime data type. Toute opération d’affectation de littéraux ODBC DATETIME dans des types time provoque une conversion implicite entre datetime et ce type, comme défini par les règles de conversion.Any assignment operation from ODBC DATETIME literals into timetypes will cause an implicit conversion between datetime and this type as defined by the conversion rules.
ODBC TIMEODBC TIME Voir la règle DATE ODBC plus haut.See ODBC DATE rule above.
ODBC DATETIMEODBC DATETIME Voir la règle DATE ODBC plus haut.See ODBC DATE rule above.
DATE uniquementDATE only Les valeurs par défaut sont fournies.Default values are supplied.
TIME uniquementTIME only SimpleTrivial
TIMEZONE uniquementTIMEZONE only Les valeurs par défaut sont fournies.Default values are supplied.
DATE + TIMEDATE + TIME La partie TIME de la chaîne d'entrée est utilisée.The TIME part of the input string is used.
DATE + TIMEZONEDATE + TIMEZONE Non autorisé.Not allowed.
TIME + TIMEZONETIME + TIMEZONE La partie TIME de la chaîne d'entrée est utilisée.The TIME part of the input string is used.
DATE + TIME + TIMEZONEDATE + TIME + TIMEZONE La partie TIME du DATETIME local sera utilisée.The TIME part of local DATETIME will be used.

ExemplesExamples

A.A. Comparaison de types de données de date et d'heureComparing 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 date et time.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

B.B. Insertion de littéraux de chaîne d'heure valides dans une colonne time(7)Inserting Valid Time String Literals into a time(7) Column

Le tableau suivant répertorie différents littéraux de chaîne qui peuvent être insérés dans une colonne de type de données time(7) avec les valeurs qui sont ensuite stockées dans cette colonne.The following table lists different string literals that can be inserted into a column of data type time(7) with the values that are then stored in that column.

Type de format du littéral de chaîneString literal format type Littéral de chaîne inséréInserted string literal Valeur time(7) qui est stockéetime(7) value that is stored DescriptionDescription
SQL ServerSQL Server '01:01:01:123AM''01:01:01:123AM' 01:01:01.123000001:01:01.1230000 Lorsqu'un signe deux-points (:) précède la précision en fractions de seconde, l'échelle ne peut pas dépasser trois positions ou une erreur sera déclenchée.When a colon (:) comes before fractional seconds precision, scale cannot exceed three positions or an error will be raised.
SQL ServerSQL Server '01:01:01.1234567 AM''01:01:01.1234567 AM' 01:01:01.123456701:01:01.1234567 Lorsque l'élément AM ou PM est spécifié, l'heure est stockée au format 24 heures sans le littéral AM ou PMWhen AM or PM is specified, the time is stored in 24-hour format without the literal AM or PM
SQL ServerSQL Server '01:01:01.1234567 PM''01:01:01.1234567 PM' 13:01:01.123456713:01:01.1234567 Lorsque l'élément AM ou PM est spécifié, l'heure est stockée au format 24 heures sans le littéral AM ou PMWhen AM or PM is specified, the time is stored in 24-hour format without the literal AM or PM
SQL ServerSQL Server '01:01:01.1234567PM''01:01:01.1234567PM' 13:01:01.123456713:01:01.1234567 Un espace avant AM ou PM est facultatif.A space before AM or PM is optional.
SQL ServerSQL Server '01AM''01AM' 01:00:00.000000001:00:00.0000000 Lorsque seule l'heure est spécifiée, toutes les autres valeurs sont égales à 0.When only the hour is specified, all other values are 0.
SQL ServerSQL Server '01 AM''01 AM' 01:00:00.000000001:00:00.0000000 Un espace avant AM ou PM est facultatif.A space before AM or PM is optional.
SQL ServerSQL Server '01:01:01''01:01:01' 01:01:01.000000001:01:01.0000000 Lorsque la précision en fractions de seconde n'est pas spécifiée, chaque position qui est définie par le type de données est égale à 0.When fractional seconds precision is not specified, each position that is defined by the data type is 0.
ISO 8601ISO 8601 '01:01:01.1234567''01:01:01.1234567' 01:01:01.123456701:01:01.1234567 Pour la conformité avec ISO 8601, utilisez le format 24 heures, et non AM ou PM.To comply with ISO 8601, use 24-hour format, not AM or PM.
ISO 8601ISO 8601 '01:01:01.1234567 +01:01''01:01:01.1234567 +01:01' 01:01:01.123456701:01:01.1234567 La différence de fuseau horaire facultative (TZD) est autorisée dans l'entrée, mais n'est pas stockée.The optional time zone difference (TZD) is allowed in the input but is not stored.

C.C. Insertion du littéral de chaîne d'heure dans les colonnes de chaque type de données de date et d'heureInserting Time String Literal into Columns of Each date and time Date Type

Dans le tableau suivant, la première colonne affiche un littéral de chaîne d'heure à insérer dans une colonne de table de base de données du type de données de date et d'heure indiqué dans la deuxième colonne.In the following table the first column shows a time string literal to be inserted into a database table column of the date or time data type shown in the second column. La troisième colonne affiche la valeur qui sera stockée dans la colonne de table de base de données.The third column shows the value that will be stored in the database table column.

Littéral de chaîne inséréInserted string literal Type de données de la colonneColumn data type Valeur qui est stockée dans la colonneValue that is stored in column DescriptionDescription
'12:12:12.1234567''12:12:12.1234567' time(7)time(7) 12:12:12.123456712:12:12.1234567 Si la précision en fractions de seconde dépasse la valeur spécifiée pour la colonne, la chaîne sera tronquée sans erreur.If the fractional seconds precision exceeds the value specified for the column, the string will be truncated without error.
'2007-05-07''2007-05-07' datedate NULLNULL Toute valeur d'heure provoquera l'échec de l'instruction INSERT.Any time value will cause the INSERT statement to fail.
'12:12:12''12:12:12' smalldatetimesmalldatetime 1900-01-01 12:12:001900-01-01 12:12:00 Toute valeur de précision en fractions de seconde provoquera l'échec de l'instruction INSERT.Any fractional seconds precision value will cause the INSERT statement to fail.
'12:12:12.123''12:12:12.123' datetimedatetime 1900-01-01 12:12:12.1231900-01-01 12:12:12.123 Toute précision de seconde supérieure à trois positions provoquera l'échec de l'instruction INSERT.Any second precision longer than three positions will cause the INSERT statement to fail.
'12:12:12.1234567''12:12:12.1234567' datetime2(7)datetime2(7) 1900-01-01 12:12:12.12345671900-01-01 12:12:12.1234567 Si la précision en fractions de seconde dépasse la valeur spécifiée pour la colonne, la chaîne sera tronquée sans erreur.If the fractional seconds precision exceeds the value specified for the column, the string will be truncated without error.
'12:12:12.1234567''12:12:12.1234567' datetimeoffset(7)datetimeoffset(7) 1900-01-01 12:12:12.1234567 +00:001900-01-01 12:12:12.1234567 +00:00 Si la précision en fractions de seconde dépasse la valeur spécifiée pour la colonne, la chaîne sera tronquée sans erreur.If the fractional seconds precision exceeds the value specified for the column, the string will be truncated without error.

Voir aussiSee Also

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