datetime2 (Transact-SQL)
Define una fecha que se combina con una hora de día basada en el reloj de 24 horas. datetime2 puede considerarse una extensión del tipo datetime existente que tiene un intervalo de fechas mayor, un valor predeterminado mayor de precisión fraccionaria y precisión especificada por el usuario opcional.
Para obtener una introducción de todos los tipos de datos y funciones de fecha y hora de Transact-SQL, vea Funciones de fecha y hora (Transact-SQL). Para obtener información y ejemplos comunes a los tipos de datos y funciones de fecha y hora, vea Usar datos de fecha y hora.
Descripción de datetime2
Propiedad |
Valor |
---|---|
Sintaxis |
datetime2 [ (fractional seconds precision) ] |
Uso |
DECLARE @MyDatetime2 datetime2(7) CREATE TABLE Table1 ( Column1 datetime2(7) ) |
Formato de literal de cadena predeterminado (se utiliza para el cliente de nivel inferior) |
AAAA-MM-DD hh:mm:ss[.fracciones de segundos] Para obtener más información, vea la sección sobre la compatibilidad con versiones anteriores de clientes de nivel inferior de Usar datos de fecha y hora. |
Intervalo de fechas |
De 0001-01-01 a 9999-12-31 Del 1 de enero del año 1 después de Cristo al 31 de diciembre de 9999 |
Intervalo de horas |
De 00:00:00 a 23:59:59.9999999 |
Intervalo de desplazamiento de zona horaria |
Ninguna |
Intervalos de elementos |
AAAA es una cifra de cuatro dígitos comprendida entre 0001 y 9999 que representa un año. MM es una cifra de dos dígitos comprendida entre 01 y 12 que representa un mes del año especificado. DD es una cifra de dos dígitos comprendida entre 01 y 31 dependiendo del mes, que representa un día del mes especificado. hh es una cifra de dos dígitos comprendida entre 00 y 23 que representa la hora. mm es una cifra de dos dígitos comprendida entre 00 y 59 que representa los minutos. ss es una cifra de dos dígitos comprendida entre 00 y 59 que representa los segundos. n* es una cifra de cero a siete dígitos comprendida entre 0 y 9999999 que representa las fracciones de segundos. |
Longitud de los caracteres |
19 posiciones como mínimo (AAAA-MM-DD hh:mm:ss) a 27 como máximo (AAAA-MM-DD hh:mm:ss .0000000) |
Precisión, escala |
De 0 a 7 dígitos, con una precisión de 100 ns. La precisión predeterminada es 7 dígitos. |
Tamaño de almacenamiento |
6 bytes para precisiones inferiores a 3; 7 bytes para precisiones 3 y 4. Todas las demás precisiones requieren 8 bytes. |
Precisión |
100 nanosegundos |
Valor predeterminado |
1900-01-01 00:00:00 |
Calendario |
Gregoriano |
Precisión de fracciones de segundo definida por el usuario |
Sí |
Conservación y reconocimiento del desplazamiento de la zona horaria |
No |
Reconocimiento del horario de verano |
No |
Para los metadatos de tipo de datos, vea sys.systypes (Transact-SQL) o TYPEPROPERTY (Transact-SQL). La precisión y escala son variables para algunos tipos de datos de hora y fecha. Para obtener la precisión y la escala para una columna, vea COLUMNPROPERTY (Transact-SQL), COL_LENGTH (Transact-SQL)o sys.columns (Transact-SQL).
Formatos de literales de cadena admitidos para datetime2
Las tablas siguientes enumeran los formatos de literales de cadena ISO 8601 y ODBC admitidos para datetime2. Para obtener información sobre los formatos alfabético, numérico, sin separación y de hora para las partes de fecha y hora de datetime2, vea date (Transact-SQL) y hora (Transact-SQL).
ISO 8601 |
Descripciones |
---|---|
AAAA-MM-DDThh:mm:ss[.nnnnnnn] AAAA-MM-DDThh:mm:ss[.nnnnnnn] |
Este formato no se ve afectado por la configuración regional de sesión de SET LANGUAGE y SET DATEFORMAT. La letra T, los dos puntos (:) y el punto (.) se incluyen en el literal de cadena, por ejemplo '2007-05-02T19:58:47.1234567'. |
ODBC |
Descripción |
---|---|
{ ts 'aaaa-mm-dd hh:mm:ss[.fracciones de segundo]' } |
Específico de ODBC API:
|
Compatibilidad con ANSI e ISO 8601
La compatibilidad ANSI e ISO 8601 de date y time se aplica a datetime2.
Ejemplos
El ejemplo siguiente compara los resultados de convertir una cadena a los tipos de datos date y time.
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';
El conjunto de resultados es el siguiente.
Tipo de datos |
Salida |
---|---|
time |
12:35:29. 1234567 |
date |
2007-05-08 |
smalldatetime |
2007-05-08 12:35:00 |
datetime |
2007-05-08 12:35:29.123 |
datetime2 |
2007-05-08 12:35:29. 1234567 |
datetimeoffset |
2007-05-08 12:35:29.1234567 +12:15 |
Vea también