hora (Transact-SQL)time (Transact-SQL)

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2008)síAzure SQL DatabasesíAzure SQL Data Warehouse síAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Define una hora de un día.Defines a time of a day. La hora no distingue la zona horaria y está basada en un reloj de 24 horas.The time is without time zone awareness and is based on a 24-hour clock.

Nota

Se proporciona información de Informatica para los clientes de PDW mediante el conector de Informatica.Informatica information is provided for PDW customers using the Informatica Connector.

Descripción de timetime Description

PropiedadProperty ValorValue
SintaxisSyntax tiempo [(escala fracciones de segundo)]time [ (fractional second scale) ]
UsoUsage DECLARAR @MyTime Time (7)DECLARE @MyTime time(7)

Crear tabla Table1 (Column1 Time (7) )CREATE TABLE Table1 ( Column1 time(7) )
escala de fracciones de segundofractional seconds scale Especifica el número de dígitos de la parte fraccionaria de los segundos.Specifies the number of digits for the fractional part of the seconds.

Este valor puede ser un entero de 0 a 7.This can be an integer from 0 to 7. Para Informatica, esto puede ser un entero de 0 a 3.For Informatica, this can be an integer from 0 to 3.

La escala de fracciones predeterminada es 7 (100 NS).The default fractional scale is 7 (100ns).
Formato de literal de cadena predeterminadoDefault string literal format

(se usa para el cliente de nivel inferior)(used for down-level client)
hh .nnnnnnnhh:mm:ss.nnnnnnn

Para obtener más información, vea la sección "Compatibilidad con versiones anteriores de los clientes de niveles inferiores" más adelante.For more information, see the "Backward Compatibility for Down-level Clients" section that follows..
IntervaloRange 00:00:00.0000000 a través de 23:59:59.9999999 (00:00:00.000 a través de 23:59:59.999 de Informatica)00:00:00.0000000 through 23:59:59.9999999 (00:00:00.000 through 23:59:59.999 for Informatica)
Intervalos de elementosElement ranges hh es una cifra de dos dígitos, comprendida entre 0 y 23, que representa la hora.hh is two digits, ranging from 0 to 23, that represent the hour.

mm es una cifra de dos dígitos, comprendida entre 0 y 59, que representa los minutos.mm is two digits, ranging from 0 to 59, that represent the minute.

ss es una cifra de dos dígitos, comprendida entre 0 y 59, que representa los segundos.ss is two digits, ranging from 0 to 59, that represent the second.

n*es de cero a siete dígitos, comprendida entre 0 y 9999999 que representa las fracciones de segundo.n* is zero to seven digits, ranging from 0 to 9999999, that represent the fractional seconds. Para Informatica, n* es de cero a tres dígitos, comprendida entre 0 y 999.For Informatica, n* is zero to three digits, ranging from 0 to 999.
Longitud en caracteresCharacter length de 8 posiciones como mínimo (HH) a 16 como máximo (. nnnnnnn).8 positions minimum (hh:mm:ss) to 16 maximum (hh:mm:ss.nnnnnnn). Para Informatica, el máximo es 12 (hh:mm:ss.nnn).For Informatica, the maximum is 12 (hh:mm:ss.nnn).
Precisión, escalaPrecision, scale

(el usuario especifica solo la escala)(user specifies scale only)
Vea la siguiente tabla.See the table below.
Tamaño de almacenamientoStorage size 5 bytes (fijo) es el valor predeterminado con el valor predeterminado de 100 ns de precisión de fracciones de segundo.5 bytes, fixed, is the default with the default of 100ns fractional second precision. En informática, el valor predeterminado es 4 bytes, fijo, con el valor predeterminado de 1 ms fracciones precisión de segundos.In Informatica, the default is 4 bytes, fixed, with the default of 1ms fractional second precision.
PrecisiónAccuracy 100 nanosegundos (1 milisegundo en Informatica)100 nanoseconds (1 millisecond in Informatica)
Valor predeterminadoDefault value 00:00:0000:00:00

Este valor se utiliza para la parte de hora anexada para la conversión implícita de fecha a datetime2 o datetimeoffset.This value is used for the appended time part for implicit conversion from date to datetime2 or datetimeoffset.
Precisión de fracciones de segundo definida por el usuarioUser-defined fractional second precision Yes
Conservación y reconocimiento del ajuste de zona horariaTime zone offset aware and preservation NoNo
Reconocimiento del horario de veranoDaylight saving aware NoNo
Escala especificadaSpecified scale Resultado (precisión, escala)Result (precision, scale) Longitud de la columna (bytes)Column length (bytes) FraccionesFractional

segundosseconds

precisiónprecision
timetime (16,7) [Informatica en (12,3)](16,7) [(12,3) in Informatica] 5 (4 de Informatica)5 (4 in Informatica) 7 (3 de 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)

No se admite en Informatica.Not supported in Informatica.
(13,4)(13,4) 44 3-43-4
Time(5)time(5)

No se admite en Informatica.Not supported in Informatica.
(14,5)(14,5) 55 5-75-7
Time(6)time(6)

No se admite en Informatica.Not supported in Informatica.
(15,6)(15,6) 55 5-75-7
time(7)time(7)

No se admite en Informatica.Not supported in Informatica.
(16,7)(16,7) 55 5-75-7

Formatos de literales de cadena compatibles para timeSupported String Literal Formats for time

En la tabla siguiente se muestra la cadena válida formatos de literales para el tiempo tipo de datos.The following table shows the valid string literal formats for the time data type.

SQL ServerSQL Server DescriptionDescription
hh:mm[:ss][:fracciones de segundo][AM][PM]hh:mm[:ss][:fractional seconds][AM][PM]

hh:mm[:ss][.fracciones de segundo][AM][PM]hh:mm[:ss][.fractional seconds][AM][PM]

hhAM[PM]hhAM[PM]

hh AM[PM]hh AM[PM]
El valor de hora 0 representa la hora desde medianoche (AM), sin tener en cuenta si se especifica AM.The hour value of 0 represents the hour after midnight (AM), regardless of whether AM is specified. PM no se puede especificar si la hora es igual a 0.PM cannot be specified when the hour equals 0.

Las horas de 01 a 11 representan horas antes del mediodía si no se especifica AM ni PM.Hour values from 01 through 11 represent the hours before noon if neither AM nor PM is specified. Si se especifica AM, los valores representan las horas antes del mediodía.The values represent the hours before noon when AM is specified. Si se especifica PM, los valores representan las horas después del mediodía.The values represent hours after noon if PM is specified.

El valor de hora 12 representa el mediodía si no se especifica AM ni PM.The hour value 12 represents the hour that starts at noon if neither AM nor PM is specified. Si se especifica AM, el valor representa la hora que empieza a medianoche.If AM is specified, the value represents the hour that starts at midnight. Si se especifica PM, el valor representa la hora que empieza a mediodía.If PM is specified, the value represents the hour that starts at noon. Por ejemplo, 12:01 es 1 minuto después del mediodía, igual que 12:01 PM, mientras que 12:01 AM es 1 minuto después de medianoche.For example, 12:01 is 1 minute after noon, as is 12:01 PM; and 12:01 AM is one minute after midnight. Especificar 12:01 AM es lo mismo que 00:01 ó 00:01 AM.Specifying 12:01 AM is the same as specifying 00:01 or 00:01 AM.

Los valores de hora de 13 a 23 representan horas después del mediodía si no se especifica AM o PM.Hour values from 13 through 23 represent hours after noon if AM or PM is not specified. Si se especifica PM, los valores también representan las horas después del mediodía.The values also represent the hours after noon when PM is specified. No es posible especificar AM si el valor de hora es de 13 a 23.AM cannot be specified when the hour value is from 13 through 23.

Un valor de hora de 24 no es válido.An hour value of 24 is not valid. Para representar la medianoche, use 12:00 AM o 00:00.To represent midnight, use 12:00 AM or 00:00.

Los milisegundos se pueden preceder de dos puntos (:) o un punto (.).Milliseconds can be preceded by either a colon (:) or a period (.). Si se usan dos puntos, el número indica milésimas de segundo.If a colon is used, the number means thousandths-of-a-second. Si se usa un punto, un único dígito indica décimas de segundo, dos dígitos indica centésimas de segundo y tres dígitos indica milésimas de segundo.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. Por ejemplo, 12:30:20:1 indica las 12:30, 20 segundos y una milésima; 12:30:20.1 indica las 12:30, 20 segundos y una décima.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 NotasNotes
hh:mm:sshh:mm:ss

hh:mm[:ss][.fracciones de segundo]hh:mm[:ss][.fractional seconds]
hh es una cifra de dos dígitos, de 0 a 14, que representa el número de horas del ajuste de zona horaria.hh is two digits, ranging from 0 to 14, that represent the number of hours in the time zone offset.

mm es una cifra de dos dígitos, de 0 a 59, que representa el número de minutos adicionales en el ajuste de zona horaria.mm is two digits, ranging from 0 to 59, that represent the number of additional minutes in the time zone offset.
ODBCODBC NotasNotes
{t 'hh:mm:ss[.fracciones de segundo]'}{t 'hh:mm:ss[.fractional seconds]'} Específico de la API de ODBC.ODBC API specific.

Compatibilidad con las normas ANSI e ISO 8601Compliance with ANSI and ISO 8601 Standards

No se admite el uso de la hora 24 para representar la medianoche y la inserción de un segundo intercalar respecto a 59, como se define en el estándar ISO 8601 (5.3.2 y 5.3), por compatibilidad con versiones anteriores y para mantener la coherencia con los tipos de fecha y hora existentes.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.

El formato predeterminado del literal de cadena (que se usa para el cliente de nivel inferior) se ajustará al formato del estándar SQL, definido como 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]. Este formato es similar a la definición de ISO 8601 para TIME, sin incluir las fracciones de segundo.This format resembles the ISO 8601 definition for TIME excluding fractional seconds.

Compatibilidad con versiones anteriores de clientes de nivel inferior Backward Compatibility for Down-level Clients

Algunos clientes de nivel inferior no admiten la tiempo, fecha, datetime2 y datetimeoffset tipos de datos.Some down-level clients do not support the time, date, datetime2 and datetimeoffset data types. En la tabla siguiente se muestra la asignación de tipo entre una instancia de nivel superior de SQL ServerSQL Server y los clientes de nivel inferior.The following table shows the type mapping between an up-level instance of SQL ServerSQL Server and down-level clients.

SQL ServerSQL Servertipo de datos data type El formato del literal de cadena predeterminado se pasó al cliente de nivel inferiorDefault string literal format passed to down-level client ODBC de nivel inferiorDown-level ODBC OLEDB de nivel inferiorDown-level OLEDB JDBC de nivel inferiorDown-level JDBC SQLCLIENT de nivel inferiorDown-level SQLCLIENT
timetime hh:mm:ss[.nnnnnnn]hh:mm:ss[.nnnnnnn] SQL_WVARCHAR o SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR o DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String Cadena o SqStringString or SqString
datedate YYYY-MM-DDYYYY-MM-DD SQL_WVARCHAR o SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR o DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String Cadena o SqStringString or SqString
datetime2datetime2 AAAA-MM-DD hh:mm:ss[.nnnnnnn]YYYY-MM-DD hh:mm:ss[.nnnnnnn] SQL_WVARCHAR o SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR o DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String Cadena o SqStringString or SqString
datetimeoffsetdatetimeoffset AAAA-MM-DD hh [.nnnnnnn] [+ |-] hh: mmYYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm SQL_WVARCHAR o SQL_VARCHARSQL_WVARCHAR or SQL_VARCHAR DBTYPE_WSTR o DBTYPE_STRDBTYPE_WSTRor DBTYPE_STR Java.sql.StringJava.sql.String Cadena o SqStringString or SqString

Convertir datos de fecha y horaConverting Date and Time Data

Cuando se convierte a los tipos de datos de fecha y hora, SQL ServerSQL Server rechaza todos los valores que no reconoce como fechas u horas.When you convert to date and time data types, SQL ServerSQL Server rejects all values it cannot recognize as dates or times. Para obtener información acerca de cómo utilizar las funciones CAST y CONVERT con datos de fecha y hora, vea CAST y CONVERT ( Transact-SQL )For information about using the CAST and CONVERT functions with date and time data, see CAST and CONVERT (Transact-SQL)

Convertir el tipo de datos time(n) en otros tipos de fecha y horaConverting time(n) Data Type to Other Date and Time Types

Esta sección describe lo que ocurre cuando un tiempo tipo de dato se convierte a otros tipos de datos de fecha y hora.This section describes what occurs when a time data type is converted to other date and time data types.

Cuando la conversión es a Time (n), se copian a la hora, minutos y segundos.When the conversion is to time(n), the hour, minute, and seconds are copied. Cuando la precisión de destino es menor que la precisión de origen, las fracciones de segundo se redondea para ajustarse a la precisión de destino.When the destination precision is less than the source precision, the fractional seconds is rounded up to fit the destination precision. En el siguiente ejemplo se muestran los resultados de convertir un valor time(4) en un valor 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)  

Si la conversión es aIf the conversion is to
fecha, se produce un error en la conversión y se genera el mensaje de error 206: "tipos de operandos: date es incompatible con time".date, the conversion fails, and error message 206 is raised: "Operand type clash: date is incompatible with time".

Cuando la conversión es a datetime, hora, minuto y segundo valores se copian; y el componente de fecha se establece en ' 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'. Cuando la precisión de fracciones de segundo de la Time (n) valor es superior a tres dígitos, el datetime resultado se truncará.When the fractional seconds precision of the time(n) value is greater than three digits, the datetime result will be truncated. En el código siguiente se muestran los resultados de convertir un valor time(4) en un valor 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)  

Cuando la conversión es a smalldatetime, la fecha se establece en ' 1900-01-01' y los valores de hora y minutos se redondean hacia arriba.When the conversion is to smalldatetime, the date is set to '1900-01-01', and the hour and minute values are rounded up. Los segundos y las fracciones de segundo se establecen en 0.The seconds and fractional seconds are set to 0. En el código siguiente se muestran los resultados de convertir un valor time(4) en un valor 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)  

Si la conversión es a DateTimeOffset (n), la fecha se establece en ' 1900-01-01' y la hora se copia.If the conversion is to datetimeoffset(n), the date is set to '1900-01-01', and the time is copied. El ajuste de zona horaria se establece en +00:00.The time zone offset is set to +00:00. Cuando la precisión de fracciones de segundo de la Time (n) valor es mayor que la precisión de la DateTimeOffset (n) valor, el valor se redondea para ajustarse.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. El ejemplo siguiente muestra los resultados de convertir un valor de time(4) en un tipo 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)  

Al convertir a datetime2, la fecha se establece en ' 1900-01-01', se copia el componente de hora, y el ajuste de zona horaria se establece en 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. Cuando la precisión de fracciones de segundo de la datetime2 valor es mayor que el Time (n) valor, el valor se redondeará hasta para ajustarse.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. En el siguiente ejemplo se muestran los resultados de convertir un valor time(4) en un valor 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)  

Convertir literales de cadena a time(n)Converting String Literals to time(n)

Las conversiones de literales de cadena en tipos de fecha y hora son posibles cuando todas las partes de las cadenas están en formatos válidos.Conversions from string literals to date and time types are permitted if all parts of the strings are in valid formats. En caso contrario, se generará un error en el tiempo de ejecución.Otherwise, a runtime error is raised. Las conversiones implícitas o explícitas que no especifican un estilo (desde tipos de fecha y hora hasta literales de cadena) estarán en el formato predeterminado de la sesión actual.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. La siguiente tabla muestra las reglas para convertir una cadena literal la tiempo tipo de datos.The following table shows the rules for converting a string literal to the time data type.

Literal de cadena de entradaInput string literal Regla de conversiónConversion Rule
DATE de ODBCODBC DATE Literales de cadena ODBC se asignan a la datetime tipo de datos.ODBC string literals are mapped to the datetime data type. Cualquier operación de asignación de literales de DATETIME de ODBC en tiempotipos provocará una conversión implícita entre datetime y este tipo de acuerdo con las reglas de conversión.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.
TIME de ODBCODBC TIME Vea la regla de DATE de ODBC anterior.See ODBC DATE rule above.
DATETIME DE ODBCODBC DATETIME Vea la regla de DATE de ODBC anterior.See ODBC DATE rule above.
Solo DATEDATE only Se proporcionan los valores predeterminados.Default values are supplied.
Solo TIMETIME only TrivialTrivial
Solo TIMEZONETIMEZONE only Se proporcionan los valores predeterminados.Default values are supplied.
DATE + TIMEDATE + TIME Se usa la parte de TIME de la cadena de entrada.The TIME part of the input string is used.
DATE + TIMEZONEDATE + TIMEZONE No permitido.Not allowed.
TIME + TIMEZONETIME + TIMEZONE Se usa la parte de TIME de la cadena de entrada.The TIME part of the input string is used.
DATE + TIME + TIMEZONEDATE + TIME + TIMEZONE Se usará la parte de TIME de DATETIME local.The TIME part of local DATETIME will be used.

EjemplosExamples

A.A. Comparar tipos de datos de fecha y horaComparing date and time Data Types

En el ejemplo siguiente se compara los resultados de convertir una cadena a cada uno de ellos fecha y tiempo tipo de datos.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';  
Tipo de datosData type SalidaOutput
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. Insertar literales de cadena time válidos en una columna time(7)Inserting Valid Time String Literals into a time(7) Column

En la tabla siguiente se enumera varios literales de cadena que se pueden insertar en una columna de tipo de datos Time (7) con los valores que se almacenan en esa columna.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.

Tipo de formato de literal de cadenaString literal format type Literal de cadena insertadoInserted string literal Valor de time(7) almacenadotime(7) value that is stored DescriptionDescription
SQL ServerSQL Server '01:01:01:123AM''01:01:01:123AM' 01:01:01.123000001:01:01.1230000 Si dos puntos (:) preceden la precisión en fracciones de segundo, la escala no puede tener más de tres posiciones ya que, de lo contrario, se producirá un error.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 Si se especifica AM o PM, la hora se almacenará en formato de 24 horas sin el literal AM o 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 Si se especifica AM o PM, la hora se almacenará en formato de 24 horas sin el literal AM o 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 El espacio antes de AM o PM es opcional.A space before AM or PM is optional.
SQL ServerSQL Server '01AM''01AM' 01:00:00.000000001:00:00.0000000 Si solo se especifica la hora, todos los demás valores son 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 El espacio antes de AM o PM es opcional.A space before AM or PM is optional.
SQL ServerSQL Server '01:01:01''01:01:01' 01:01:01.000000001:01:01.0000000 Si no se especifican las fracciones de segundo, cada posición definida por el tipo de datos será 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 Para cumplir las especificaciones del estándar ISO 8601, use el formato de 24 horas, no el formato AM o 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 Se puede insertar el designador opcional de diferencia de zona horaria (TZD), aunque no se almacenará.The optional time zone difference (TZD) is allowed in the input but is not stored.

C.C. Insertar literales de cadena time en columnas de tipo de datos date y timeInserting Time String Literal into Columns of Each date and time Date Type

En la siguiente tabla, la primera columna muestra un literal de cadena time que se insertará en una columna de la tabla de base de datos con el tipo de datos date o time indicado en la segunda columna.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 tercera columna muestra el valor que se almacenará en la columna de la tabla de base de datos.The third column shows the value that will be stored in the database table column.

Literal de cadena insertadoInserted string literal Tipo de datos de columnaColumn data type Valor almacenado en la columnaValue 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 precisión en fracciones de segundo supera el valor especificado en la columna, la cadena quedará truncada y no generará un error.If the fractional seconds precision exceeds the value specified for the column, the string will be truncated without error.
'07-05-2007''2007-05-07' datedate NULLNULL Cualquier valor de time producirá un error en la instrucción 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 Cualquier valor de precisión en fracciones de segundo producirá un error en la instrucción 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 Cualquier precisión en segundos de más de tres posiciones producirá un error en la instrucción 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 precisión en fracciones de segundo supera el valor especificado en la columna, la cadena quedará truncada y no generará un error.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 precisión en fracciones de segundo supera el valor especificado en la columna, la cadena quedará truncada y no generará un error.If the fractional seconds precision exceeds the value specified for the column, the string will be truncated without error.

Vea tambiénSee Also

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