Tipos de datos y funciones de fecha y hora (Transact-SQL)
Las secciones siguientes de este tema proporcionan información de todos los tipos de datos y funciones de fecha y la hora de Transact-SQL.
Tipos de datos de fecha y hora
Funciones de fecha y hora
Función que obtiene valores de fecha y hora del sistema
Funciones que obtienen partes de fecha y hora
Funciones que obtienen valores de fecha y hora de sus partes
Funciones que obtienen diferencias de fecha y hora
Funciones que modifican valores de fecha y hora
Funciones que establecen u obtienen funciones de formato de sesión
Funciones que validan valores de fecha y hora
Temas relacionados con la fecha y hora
Tipos de datos de fecha y hora
En la tabla siguiente se enumeran los tipos de datos de fecha y hora de Transact-SQL.
Tipo de datos |
Formato |
Intervalo |
Precisión |
Tamaño de almacenamiento (bytes) |
Precisión de fracciones de segundo definida por el usuario |
Ajuste de zona horaria |
---|---|---|---|---|---|---|
hh:mm:ss[. nnnnnnn] |
De 00:00:00.0000000 a 23:59:59.9999999 |
100 nanosegundos |
De 3 a 5 |
Sí |
No |
|
AAAA-MM-DD |
De 0001-01-01 a 9999-12-31 |
1 día |
3 |
No |
No |
|
AAAA-MM-DD hh:mm:ss |
De 1900-01-01 a 2079-06-06 |
1 minuto |
4 |
No |
No |
|
AAAA-MM-DD hh:mm:ss[. nnn] |
De 1753-01-01 a 9999-12-31 |
0,00333 segundos |
8 |
No |
No |
|
AAAA-MM-DD hh:mm:ss[. nnnnnnn] |
De 0001-01-01 00:00:00.0000000 a 9999-12-31 23:59:59.9999999 |
100 nanosegundos |
De 6 a 8 |
Sí |
No |
|
AAAA-MM-DD hh:mm:ss[. nnnnnnn] [+|-]hh:mm |
De 0001-01-01 00:00:00.0000000 a 9999-12-31 23:59:59.9999999 (en UTC) |
100 nanosegundos |
De 8 a 10 |
Sí |
Sí |
Nota
El tipo de datos rowversion de Transact-SQL no es un tipo de datos de fecha y hora. timestamp es un sinónimo desusado de rowversion.
Funciones de fecha y hora
En las tablas siguientes se enumeran las funciones de fecha y hora de Transact-SQL. Para obtener más información acerca del determinismo, vea Funciones deterministas y no deterministas.
Funciones que obtienen valores de fecha y hora del sistema
Todos los valores de fecha y hora del sistema se derivan del sistema operativo del equipo en el que se ejecuta la instancia de SQL Server.
Funciones de fecha y hora del sistema de precisión elevada
SQL Server 2012 obtiene los valores de fecha y hora utilizando la API de Windows GetSystemTimeAsFileTime(). La exactitud depende del hardware del equipo y de la versión de Windows en las que la instancia de SQL Server se esté ejecutando. La precisión de esta API se fija en 100 nanosegundos. La precisión se puede determinar mediante la API de Windows GetSystemTimeAdjustment().
Función |
Sintaxis |
Valor devuelto |
Tipo de datos devuelto |
Determinismo |
---|---|---|---|---|
SYSDATETIME () |
Devuelve un valor datetime2(7) que contiene la fecha y hora del equipo en el que se está ejecutando la instancia de SQL Server. El ajuste de zona horaria no está incluido. |
datetime2(7) |
No determinista |
|
SYSDATETIMEOFFSET ( ) |
Devuelve un valor datetimeoffset(7) que contiene la fecha y hora del equipo en el que la instancia de SQL Server se está ejecutando. El ajuste de zona horaria está incluido. |
datetimeoffset(7) |
No determinista |
|
SYSUTCDATETIME ( ) |
Devuelve un valor datetime2(7) que contiene la fecha y hora del equipo en el que la instancia de SQL Server se está ejecutando. La fecha y hora se devuelven como hora universal coordinada (UTC). |
datetime2(7) |
No determinista |
Funciones de fecha y hora del sistema de precisión baja
Función |
Sintaxis |
Valor devuelto |
Tipo de datos devuelto |
Determinismo |
---|---|---|---|---|
CURRENT_TIMESTAMP |
Devuelve un valor datetime que contiene la fecha y hora del equipo en el que la instancia de SQL Server se está ejecutando. El ajuste de zona horaria no está incluido. |
datetime |
No determinista |
|
GETDATE ( ) |
Devuelve un valor datetime que contiene la fecha y hora del equipo en el que la instancia de SQL Server se está ejecutando. El ajuste de zona horaria no está incluido. |
datetime |
No determinista |
|
GETUTCDATE ( ) |
Devuelve un valor datetime que contiene la fecha y hora del equipo en el que la instancia de SQL Server se está ejecutando. La fecha y hora se devuelven como una hora universal coordinada (UTC). |
datetime |
No determinista |
Funciones que obtienen partes de fecha y hora
Función |
Sintaxis |
Valor devuelto |
Tipo de datos devuelto |
Determinismo |
---|---|---|---|---|
DATENAME ( datepart , date ) |
Devuelve una cadena de caracteres que representa el datepart especificado de la fecha especificada. |
nvarchar |
No determinista |
|
DATEPART ( datepart , date ) |
Devuelve un entero que representa el datepart especificado del date especificado. |
int |
No determinista |
|
DAY ( date ) |
Devuelve un entero que representa la parte del día de date especificado. |
int |
Determinista |
|
MONTH ( date ) |
Devuelve un entero que representa la parte del mes de un date especificado. |
int |
Determinista |
|
YEAR ( date ) |
Devuelve un entero que representa la parte del año de un date especificado. |
int |
Determinístico |
Funciones que obtienen valores de fecha y hora de sus partes
Función |
Sintaxis |
Valor devuelto |
Tipo de datos devuelto |
Determinismo |
---|---|---|---|---|
DATEFROMPARTS ( year, month, day ) |
Devuelve un valor de tipo date para el año, mes y día especificados. |
date |
Determinístico |
|
DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision ) |
Devuelve un valor datetime2 para la fecha y la hora especificadas, y con la precisión indicada. |
datetime2 ( precision ) |
Determinístico |
|
DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds ) |
Devuelve un valor datetime para la fecha y la hora especificadas. |
datetime |
Determinístico |
|
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision ) |
Devuelve un valor datetimeoffset para la fecha y la hora especificadas, y con los desplazamientos y la precisión indicados. |
datetime ( precision ) |
Determinístico |
|
SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute ) |
Devuelve un valor smalldatetime para la fecha y la hora especificadas. |
smalldatetime |
Determinístico |
|
TIMEFROMPARTS ( hour, minute, seconds, fractions, precision ) |
Devuelve un valor time para la hora especificada y con la precisión indicada. |
time ( precision ) |
Determinístico |
Funciones que obtienen diferencias de fecha y hora
Función |
Sintaxis |
Valor devuelto |
Tipo de datos devuelto |
Determinismo |
---|---|---|---|---|
DATEDIFF ( datepart , startdate , enddate ) |
Devuelve el número de límites datepart de fecha y hora entre dos fechas especificadas. |
int |
Determinista |
Funciones que modifican valores de fecha y hora
Función |
Sintaxis |
Valor devuelto |
Tipo de datos devuelto |
Determinismo |
---|---|---|---|---|
DATEADD (datepart , number , date ) |
Devuelve un nuevo valor datetime agregando un intervalo al datepart especificado del date indicado. |
El tipo de datos del argumento date. |
Determinístico |
|
EOMONTH ( start_date [, month_to_add ] ) |
Devuelve el último día del mes que contiene la fecha especificada, con un desplazamiento opcional. |
El tipo de valor devuelto es start_date o datetime2(7). |
Determinístico |
|
SWITCHOFFSET (DATETIMEOFFSET , time_zone) |
SWITCH OFFSET cambia el ajuste de zona horaria de un valor DATETIMEOFFSET y conserva el valor UTC. |
datetimeoffset con la precisión fraccionaria de DATETIMEOFFSET |
Determinista |
|
TODATETIMEOFFSET (expression , time_zone) |
TODATETIMEOFFSET transforma un valor datetime2 en un valor datetimeoffset. El valor datetime2 se interpreta en la hora local para el valor time_zone especificado. |
datetimeoffset con la precisión fraccionaria del argumento datetime |
Determinista |
Funciones que establecen u obtienen un formato de sesión
Función |
Sintaxis |
Valor devuelto |
Tipo de datos devuelto |
Determinismo |
---|---|---|---|---|
@@DATEFIRST |
Devuelve el valor actual, para la sesión, de SET DATEFIRST. |
tinyint |
No determinista |
|
SET DATEFIRST { number | @number_var } |
Establece el primer día de la semana en un número del 1 al 7. |
No aplicable |
No aplicable |
|
SET DATEFORMAT { format | @format_var } |
Determina el orden de los componentes de la fecha (mes/día/año) para escribir datos de tipo datetime o smalldatetime. |
No aplicable |
No aplicable |
|
@@LANGUAGE |
Devuelve el nombre del idioma que se está utilizando actualmente. @@LANGUAGE no es ninguna función de fecha u hora. Sin embargo, la configuración de idioma puede afectar a la salida de las funciones de fecha. |
No aplicable |
No aplicable |
|
SET LANGUAGE { [ N ] 'language' | @language_var } |
Establece el entorno del idioma de la sesión y los mensajes del sistema. SET LANGUAGE no es ninguna función de fecha u hora. Sin embargo, la configuración de idioma afecta a la salida de las funciones de fecha. |
No aplicable |
No aplicable |
|
sp_helplanguage [ [ @language = ] 'language' ] |
Devuelve información sobre los formatos de fecha de todos los idiomas compatibles. sp_helplanguage no es un procedimiento almacenado de fecha u hora. Sin embargo, la configuración de idioma afecta a la salida de las funciones de fecha. |
No aplicable |
No aplicable |
Funciones que validan valores de fecha y hora
Función |
Sintaxis |
Valor devuelto |
Tipo de datos devuelto |
Determinismo |
---|---|---|---|---|
ISDATE ( expression ) |
Determina si una expresión de entrada datetime o smalldatetime es un valor de fecha u hora válido. |
int |
ISDATE solo es determinista si se utiliza con la función CONVERT, cuando se especifica el parámetro de estilo CONVERT y cuando el estilo no es igual a 0, 100, 9 ni 109. |
Temas relacionados con la fecha y hora
Tema |
Descripción |
---|---|
Proporciona información sobre la conversión de los valores de fecha y hora de literales de cadena y otros formatos de fecha y hora. |
|
Proporciona directrices para la portabilidad de bases datos y aplicaciones de bases de datos que utilizan instrucciones Transact-SQL de un idioma a otro, o que admiten varios idiomas. |
|
Proporciona información sobre funciones escalares de ODBC que se pueden utilizar en instrucciones Transact-SQL. Esto incluye las funciones de fecha y hora ODBC. |