Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server
Base de datos de Azure SQL
Azure SQL Managed Instance
Azure Synapse Analytics
En las secciones de este artículo se describen todos los tipos de datos y funciones de fecha y hora de Transact-SQL.
- Tipos de datos de fecha y hora
- Funciones de fecha y hora
- Funciones que devuelven valores de fecha y hora del sistema
- Funciones que devuelven elementos de fecha y hora
- Funciones que devuelven valores de fecha y hora de sus elementos
- Funciones que devuelven valores de diferencia de fecha y hora
- Funciones que modifican valores de fecha y hora
- Funciones que establecen o devuelven funciones de formato de sesión
- Funciones que validan valores de fecha y hora
- Artículos relacionados con la fecha y hora
Tipos de datos de fecha y hora
En la tabla siguiente se muestran 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 |
---|---|---|---|---|---|---|
time | HH:mm:ss[.nnnnnnnn] | De 00:00:00.0000000 a 23:59:59.9999999 | 100 nanosegundos | 3 to 5 | Sí | No |
date | yyyy-MM-dd | De 0001-01-01 a 31.12.99 | 1 día | 3 | No | No |
smalldatetime | aaaa/MM/dd HH:mm:ss | De 1900-01-01 a 2079-06-06 | 1 minuto | 4 | No | No |
datetime | aaaa-MM-dd HH:mm:ss[.nnn] | De 1753-01-01 a 9999-12-31 | 0,00333 segundos | 8 | No | No |
datetime2 | 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 |
datetimeoffset | 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 u hora. timestamp es un sinónimo en desuso 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 sobre el determinismo, vea Funciones deterministas y no deterministas.
Funciones que devuelven valores de fecha y hora del sistema
Transact-SQL deriva todos los valores de fecha y hora 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
Desde SQL Server 2008 (10.0.x), el Motor de base de datos deriva los valores de fecha y hora mediante la API de Windows GetSystemTimeAsFileTime(). La exactitud depende del hardware del equipo y de la versión de Windows en la que se ejecuta la instancia de SQL Server. La precisión de esta API se fija en 100 nanosegundos. Use la API de Windows GetSystemTimeAdjustment() para determinar la precisión.
Función | Sintaxis | Valor devuelto | Tipo de datos devuelto | Determinismo |
---|---|---|---|---|
SYSDATETIME | SYSDATETIME ( ) | Devuelve un valor datetime2(7) que contiene la fecha y hora del equipo en el que se ejecuta la instancia de SQL Server. El valor devuelto no incluye el desplazamiento de zona horaria. | datetime2(7) | No determinista |
SYSDATETIMEOFFSET | SYSDATETIMEOFFSET ( ) | Devuelve un valor datetimeoffset(7) que contiene la fecha y hora del equipo en el que se ejecuta la instancia de SQL Server. El valor devuelto incluye el desplazamiento de zona horaria. | datetimeoffset(7) | No determinista |
SYSUTCDATETIME | SYSUTCDATETIME ( ) | Devuelve un valor datetime2(7) que contiene la fecha y hora del equipo en el que se ejecuta la instancia de SQL Server. La función devuelve los valores de fecha y hora como una 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 | CURRENT_TIMESTAMP | Devuelve un valor datetime que contiene la fecha y hora del equipo en el que se ejecuta la instancia de SQL Server. El valor devuelto no incluye el desplazamiento de zona horaria. | datetime | No determinista |
GETDATE | GETDATE ( ) | Devuelve un valor datetime que contiene la fecha y hora del equipo en el que se ejecuta la instancia de SQL Server. El valor devuelto no incluye el desplazamiento de zona horaria. | datetime | No determinista |
GETUTCDATE | GETUTCDATE ( ) | Devuelve un valor datetime que contiene la fecha y hora del equipo en el que se ejecuta la instancia de SQL Server. La función devuelve los valores de fecha y hora como una hora universal coordinada (UTC). | datetime | No determinista |
CURRENT_DATE | CURRENT_DATE | Devuelve un valor de fecha que contiene solo la fecha del equipo en el que se ejecuta la instancia de la Motor de base de datos. El valor devuelto no incluye la hora y el desplazamiento de zona horaria. | date | No determinista |
Funciones que devuelven elementos de fecha y hora
Función | Sintaxis | Valor devuelto | Tipo de datos devuelto | Determinismo |
---|---|---|---|---|
DATE_BUCKET | DATE_BUCKET ( datepart, number, date, origin ) | Devuelve un valor de fecha y hora correspondiente al inicio de cada cubo de fecha y hora, desde la marca de tiempo definida por el parámetro origin o el valor de origen predeterminado de 1900-01-01 00:00:00.000 , si el parámetro de origen no se ha especificado. |
El tipo devuelto depende del argumento proporcionado para date. | No determinista |
DATENAME | DATENAME ( datepart, date ) | Devuelve una cadena de caracteres que representa el parámetro datepart especificado de la fecha especificada. | nvarchar | No determinista |
DATEPART | DATEPART ( datepart, date ) | Devuelve un entero que representa el parámetro datepart especificado del parámetro date especificado. | int | No determinista |
DATETRUNC | DATETRUNC ( datepart, date ) | Devuelve una fecha de entrada truncada a un datepart especificado. | El tipo devuelto depende del argumento proporcionado para date. | No determinista |
DAY | DAY (date) | Devuelve un entero que representa la parte del día del parámetro date especificado. | int | Determinista |
MONTH | MONTH (date) | Devuelve un entero que representa la parte del mes del parámetro date especificado. | int | Determinista |
YEAR | YEAR (date) | Devuelve un entero que representa la parte del año del parámetro date especificado. | int | Determinista |
Funciones que devuelven valores de fecha y hora de sus elementos
Función | Sintaxis | Valor devuelto | Tipo de datos devuelto | Determinismo |
---|---|---|---|---|
DATEFROMPARTS | DATEFROMPARTS ( año, mes, día ) | Devuelve un valor de tipo date para el año, mes y día especificados. | date | Determinista |
DATETIME2FROMPARTS | DATETIME2FROMPARTS ( año, mes, día, hora, minuto, segundos, fracciones, precisión) | Devuelve un valor datetime2 para la fecha y la hora especificadas, con la precisión indicada. | datetime2(precision) | Determinista |
DATETIMEFROMPARTS | DATETIMEFROMPARTS ( año, mes, día, hora, minuto, segundos, milisegundos) | Devuelve un valor datetime para la fecha y la hora especificadas. | datetime | Determinista |
DATETIMEOFFSETFROMPARTS | DATETIMEOFFSETFROMPARTS ( año, mes, día, hora, minuto, segundos, fracciones, desplazamiento_de_hora, desplazamiento_de_minuto, precisión) | Devuelve un valor datetimeoffset para la fecha y la hora especificadas, con los desplazamientos y la precisión indicados. | datetimeoffset(precision) | Determinista |
SMALLDATETIMEFROMPARTS | SMALLDATETIMEFROMPARTS ( año, mes, día, hora, minuto ) | Devuelve un valor smalldatetime de la fecha y la hora especificadas. | smalldatetime | Determinista |
TIMEFROMPARTS | TIMEFROMPARTS ( hora, minuto, segundos, fracciones, precisión ) | Devuelve un valor time para la hora especificada, con la precisión indicada. | time(precision) | Determinista |
Funciones que devuelven valores de diferencia de fecha y hora
Función | Sintaxis | Valor devuelto | Tipo de datos devuelto | Determinismo |
---|---|---|---|---|
DATEDIFF | DATEDIFF ( datepart, startdate, enddate ) | Devuelve el número de límites datepart de fecha y hora que se han superado entre dos fechas especificadas. | int | Determinista |
DATEDIFF_BIG | DATEDIFF_BIG ( datepart, startdate, enddate ) | Devuelve el número de límites datepart de fecha y hora que se han superado entre dos fechas especificadas. | bigint | Determinista |
Funciones que modifican valores de fecha y hora
Función | Sintaxis | Valor devuelto | Tipo de datos devuelto | Determinismo |
---|---|---|---|---|
DATEADD | DATEADD (datepart, number, date ) | Devuelve un nuevo valor datetime al agregar un intervalo al datepart especificado del date indicado. | El tipo de datos del argumento date | Determinista |
EOMONTH | 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 el tipo del argumento start_date, o bien como alternativa, el tipo de datos date. | Determinista |
SWITCHOFFSET | SWITCHOFFSET (DATETIMEOFFSET, time_zone) | SWITCHOFFSET cambia el desplazamiento de zona horaria de un valor DATETIMEOFFSET y conserva el valor UTC. | datetimeoffset con la precisión fraccionaria del argumento DATETIMEOFFSET | Determinista |
TODATETIMEOFFSET | TODATETIMEOFFSET (expression, time_zone) | TODATETIMEOFFSET transforma un valor datetime2 en un valor datetimeoffset. TODATETIMEOFFSET interpreta el valor datetime2 en la hora local, para el valor time_zone especificado. | datetimeoffset con la precisión fraccionaria del argumento datetime | Determinista |
Funciones que establecen o devuelven funciones de formato de sesión
Función | Sintaxis | Valor devuelto | Tipo de datos devuelto | Determinismo |
---|---|---|---|---|
@@DATEFIRST | @@DATEFIRST | Devuelve el valor actual, para la sesión, de SET DATEFIRST. | tinyint | No determinista |
SET DATEFIRST | 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 | 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 | @@LANGUAGE | Devuelve el nombre del idioma que se está usando. @@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 | 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 | 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 | ISDATE (expression) | Determina si una expresión de entrada datetime o smalldatetime tiene un valor de fecha u hora válido. | int | ISDATE solo es determinista si se usa 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. |
Artículos relacionados con la fecha y hora
Artículo | Descripción |
---|---|
FORMAT | Devuelve un valor con formato con el formato y la referencia cultural opcional especificados. Use la función FORMAT para aplicar formato específico de la configuración regional de los valores de fecha/hora y de número como cadenas. |
CAST y CONVERT | 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. |
Escribir instrucciones Transact-SQL internacionales | 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. |
Funciones escalares de ODBC | Proporciona información sobre funciones escalares de ODBC que se pueden usar en instrucciones Transact-SQL. Incluye funciones de fecha y hora ODBC. |
AT TIME ZONE | Proporciona la conversión de zona horaria. |