Tipos de datos y funciones de fecha y hora (Transact-SQL)Date and Time Data Types and Functions (Transact-SQL)

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO: yesSQL Server (starting with 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

En las secciones de este tema se describen todos los tipos de datos y funciones de fecha y hora de Transact-SQLTransact-SQL.The sections in this topic cover all Transact-SQLTransact-SQL date and time data types and functions.

Tipos de datos de fecha y horaDate and Time data types

En la tabla siguiente se muestran los tipos de datos de fecha y hora de Transact-SQLTransact-SQL:The Transact-SQLTransact-SQL date and time data types are listed in the following table:

Tipo de datosData type FormatoFormat IntervaloRange PrecisiónAccuracy Tamaño de almacenamiento (bytes)Storage size (bytes) Precisión de fracciones de segundo definida por el usuarioUser-defined fractional second precision Ajuste de zona horariaTime zone offset
timetime hh:mm:ss[.nnnnnnn]hh:mm:ss[.nnnnnnn] De 00:00:00.0000000 a 23:59:59.999999900:00:00.0000000 through 23:59:59.9999999 100 nanosegundos100 nanoseconds 3 to 53 to 5 Yes noNo
datedate YYYY-MM-DDYYYY-MM-DD De 0001-01-01 a 31.12.990001-01-01 through 9999-12-31 1 día1 day 33 noNo noNo
smalldatetimesmalldatetime AAAA-MM-DD hh:mm:ssYYYY-MM-DD hh:mm:ss De 1900-01-01 a 2079-06-061900-01-01 through 2079-06-06 1 minuto.1 minute 44 noNo noNo
datetimedatetime AAAA-MM-DD hh:mm:ss[.nnn]YYYY-MM-DD hh:mm:ss[.nnn] De 1753-01-01 a 9999-12-311753-01-01 through 9999-12-31 0,00333 segundos0.00333 second 88 noNo noNo
datetime2datetime2 AAAA-MM-DD hh:mm:ss[.nnnnnnn]YYYY-MM-DD hh:mm:ss[.nnnnnnn] De 0001-01-01 00:00:00.0000000 a 9999-12-31 23:59:59.99999990001-01-01 00:00:00.0000000 through 9999-12-31 23:59:59.9999999 100 nanosegundos100 nanoseconds De 6 a 86 to 8 Yes noNo
datetimeoffsetdatetimeoffset YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mmYYYY-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)0001-01-01 00:00:00.0000000 through 9999-12-31 23:59:59.9999999 (in UTC) 100 nanosegundos100 nanoseconds De 8 a 108 to 10 Yes Yes

Nota

El tipo de datos rowversion de Transact-SQLTransact-SQL no es un tipo de datos de fecha y hora.The Transact-SQLTransact-SQL rowversion data type is not a date or time data type. timestamp es un sinónimo en desuso de rowversion.timestamp is a deprecated synonym for rowversion.

Funciones de fecha y horaDate and Time functions

En las tablas siguientes se enumeran las funciones de fecha y hora de Transact-SQLTransact-SQL.The following tables list the Transact-SQLTransact-SQL date and time functions. Para obtener más información sobre el determinismo, vea Funciones deterministas y no deterministas.See Deterministic and Nondeterministic Functions for more information about determinism.

Función que devuelve valores de fecha y hora del sistemaFunction That Return System Date and Time Values

Transact-SQLTransact-SQL deriva todos los valores de fecha y hora del sistema operativo del equipo en el que se ejecuta la instancia de SQL ServerSQL Server. derives all system date and time values from the operating system of the computer on which the instance of SQL ServerSQL Server runs.

Funciones de fecha y hora del sistema de precisión elevadaHigher-Precision System Date and Time Functions

SQL Server 2017SQL Server 2017 deriva los valores de fecha y hora mediante la API de Windows GetSystemTimeAsFileTime(). derives the date and time values through use of the GetSystemTimeAsFileTime() Windows API. La exactitud depende del hardware del equipo y de la versión de Windows en la que se ejecuta la instancia de SQL ServerSQL Server.The accuracy depends on the computer hardware and version of Windows on which the instance of SQL ServerSQL Server running. La precisión de esta API se fija en 100 nanosegundos.This API has a precision fixed at 100 nanoseconds. Use la API de Windows GetSystemTimeAdjustment() para determinar la precisión.Use the GetSystemTimeAdjustment() Windows API to determine the accuracy.

FunciónFunction SintaxisSyntax Valor devueltoReturn value Tipo de datos devueltoReturn data type DeterminismoDeterminism
SYSDATETIMESYSDATETIME SYSDATETIME ()SYSDATETIME () Devuelve un valor datetime2(7) que contiene la fecha y hora del equipo en el que se ejecuta la instancia de SQL ServerSQL Server.Returns a datetime2(7) value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. El valor devuelto no incluye el desplazamiento de zona horaria.The returned value does not include the time zone offset. datetime2(7)datetime2(7) No deterministaNondeterministic
SYSDATETIMEOFFSETSYSDATETIMEOFFSET SYSDATETIMEOFFSET ( )SYSDATETIMEOFFSET ( ) Devuelve un valor datetimeoffset(7) que contiene la fecha y hora del equipo en el que se ejecuta la instancia de SQL ServerSQL Server.Returns a datetimeoffset(7) value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. El valor devuelto incluye el desplazamiento de zona horaria.The returned value includes the time zone offset. datetimeoffset(7)datetimeoffset(7) No deterministaNondeterministic
SYSUTCDATETIMESYSUTCDATETIME SYSUTCDATETIME ( )SYSUTCDATETIME ( ) Devuelve un valor datetime2(7) que contiene la fecha y hora del equipo en el que se ejecuta la instancia de SQL ServerSQL Server.Returns a datetime2(7) value containing the date and time of the computer on which the instance of SQL ServerSQL Server is running. La función devuelve los valores de fecha y hora como una hora universal coordinada (UTC).The function returns the date and time values as UTC time (Coordinated Universal Time). datetime2(7)datetime2(7) No deterministaNondeterministic

Funciones de fecha y hora del sistema de precisión bajaLower-Precision System Date and Time Functions

FunciónFunction SintaxisSyntax Valor devueltoReturn value Tipo de datos devueltoReturn data type DeterminismoDeterminism
CURRENT_TIMESTAMPCURRENT_TIMESTAMP CURRENT_TIMESTAMPCURRENT_TIMESTAMP Devuelve un valor datetime que contiene la fecha y hora del equipo en el que se ejecuta la instancia de SQL ServerSQL Server.Returns a datetime value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. El valor devuelto no incluye el desplazamiento de zona horaria.The returned value does not include the time zone offset. datetimedatetime No deterministaNondeterministic
GETDATEGETDATE GETDATE ( )GETDATE ( ) Devuelve un valor datetime que contiene la fecha y hora del equipo en el que se ejecuta la instancia de SQL ServerSQL Server.Returns a datetime value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. El valor devuelto no incluye el desplazamiento de zona horaria.The returned value does not include the time zone offset. datetimedatetime No deterministaNondeterministic
GETUTCDATEGETUTCDATE GETUTCDATE ( )GETUTCDATE ( ) Devuelve un valor datetime que contiene la fecha y hora del equipo en el que se ejecuta la instancia de SQL ServerSQL Server.Returns a datetime value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. La función devuelve los valores de fecha y hora como una hora universal coordinada (UTC).The function returns the date and time values as UTC time (Coordinated Universal Time). datetimedatetime No deterministaNondeterministic

Funciones que devuelven partes de fecha y horaFunctions That Return Date and Time Parts

FunciónFunction SintaxisSyntax Valor devueltoReturn value Tipo de datos devueltoReturn data type DeterminismoDeterminism
DATENAMEDATENAME DATENAME (datepart, date)DATENAME ( datepart , date ) Devuelve una cadena de caracteres que representa el parámetro datepart especificado de la fecha especificada.Returns a character string representing the specified datepart of the specified date. nvarcharnvarchar No deterministaNondeterministic
DATEPARTDATEPART DATEPART (datepart, date)DATEPART ( datepart , date ) Devuelve un entero que representa el parámetro datepart especificado del parámetro date especificado.Returns an integer representing the specified datepart of the specified date. intint No deterministaNondeterministic
DAYDAY DAY (date)DAY ( date ) Devuelve un entero que representa la parte del día del parámetro date especificado.Returns an integer representing the day part of the specified date. intint DeterministaDeterministic
MONTHMONTH MONTH (date)MONTH ( date ) Devuelve un entero que representa la parte del mes del parámetro date especificado.Returns an integer representing the month part of a specified date. intint DeterministaDeterministic
YEARYEAR YEAR (date)YEAR ( date ) Devuelve un entero que representa la parte del año del parámetro date especificado.Returns an integer representing the year part of a specified date. intint DeterministaDeterministic

Funciones que devuelven valores de fecha y hora de sus partesFunctions That Return Date and Time Values from Their Parts

FunciónFunction SintaxisSyntax Valor devueltoReturn value Tipo de datos devueltoReturn data type DeterminismoDeterminism
DATEFROMPARTSDATEFROMPARTS DATEFROMPARTS (year, month, day)DATEFROMPARTS ( year, month, day ) Devuelve un valor de tipo date para el año, mes y día especificados.Returns a date value for the specified year, month, and day. datedate DeterministaDeterministic
DATETIME2FROMPARTSDATETIME2FROMPARTS DATETIME2FROMPARTS (year, month, day, hour, minute, seconds, fractions, precision)DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision) Devuelve un valor datetime2 para la fecha y la hora especificadas, con la precisión indicada.Returns a datetime2 value for the specified date and time, with the specified precision. datetime2( precision )datetime2( precision ) DeterministaDeterministic
DATETIMEFROMPARTSDATETIMEFROMPARTS DATETIMEFROMPARTS (year, month, day, hour, minute, seconds, milliseconds)DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds) Devuelve un valor datetime para la fecha y la hora especificadas.Returns a datetime value for the specified date and time. datetimedatetime DeterministaDeterministic
DATETIMEOFFSETFROMPARTSDATETIMEOFFSETFROMPARTS DATETIMEOFFSETFROMPARTS (year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision)DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision) Devuelve un valor datetimeoffset para la fecha y la hora especificadas, con los desplazamientos y la precisión indicados.Returns a datetimeoffset value for the specified date and time, with the specified offsets and precision. datetimeoffset( precision )datetimeoffset( precision ) DeterministaDeterministic
SMALLDATETIMEFROMPARTSSMALLDATETIMEFROMPARTS SMALLDATETIMEFROMPARTS (year, month, day, hour, minute)SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute ) Devuelve un valor smalldatetime de la fecha y la hora especificadas.Returns a smalldatetime value for the specified date and time. smalldatetimesmalldatetime DeterministaDeterministic
TIMEFROMPARTSTIMEFROMPARTS TIMEFROMPARTS (hour, minute, seconds, fractions, precision)TIMEFROMPARTS ( hour, minute, seconds, fractions, precision ) Devuelve un valor time para la hora especificada, con la precisión indicada.Returns a time value for the specified time, with the specified precision. time( precision )time( precision ) DeterministaDeterministic

Funciones que devuelven valores de diferencia de fecha y horaFunctions That Return Date and Time Difference Values

FunciónFunction SintaxisSyntax Valor devueltoReturn value Tipo de datos devueltoReturn data type DeterminismoDeterminism
DATEDIFFDATEDIFF DATEDIFF (datepart, startdate, enddate)DATEDIFF ( datepart , startdate , enddate ) Devuelve el número de límites datepart de fecha y hora que se han superado entre dos fechas especificadas.Returns the number of date or time datepart boundaries, crossed between two specified dates. intint DeterministaDeterministic
DATEDIFF_BIGDATEDIFF_BIG DATEDIFF_BIG (datepart, startdate, enddate)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.Returns the number of date or time datepart boundaries, crossed between two specified dates. bigintbigint DeterministaDeterministic

Funciones que modifican valores de fecha y horaFunctions That Modify Date and Time Values

FunciónFunction SintaxisSyntax Valor devueltoReturn value Tipo de datos devueltoReturn data type DeterminismoDeterminism
DATEADDDATEADD DATEADD (datepart, number, date)DATEADD (datepart , number , date ) Devuelve un nuevo valor datetime al agregar un intervalo al datepart especificado del date indicado.Returns a new datetime value by adding an interval to the specified datepart of the specified date. El tipo de datos del argumento dateThe data type of the date argument DeterministaDeterministic
EOMONTHEOMONTH EOMONTH (start_date [, month_to_add ] )EOMONTH ( start_date [, month_to_add ] ) Devuelve el último día del mes que contiene la fecha especificada, con un desplazamiento opcional.Returns the last day of the month containing the specified date, with an optional offset. El tipo de valor devuelto es el tipo del argumento start_date, o bien como alternativa, el tipo de datos date.Return type is the type of the start_date argument, or alternately, the date data type. DeterministaDeterministic
SWITCHOFFSETSWITCHOFFSET SWITCHOFFSET (DATETIMEOFFSET, time_zone)SWITCHOFFSET (DATETIMEOFFSET , time_zone) SWITCHOFFSET cambia el desplazamiento de zona horaria de un valor DATETIMEOFFSET y conserva el valor UTC.SWITCHOFFSET changes the time zone offset of a DATETIMEOFFSET value, and preserves the UTC value. datetimeoffset con la precisión fraccionaria del argumento DATETIMEOFFSETdatetimeoffset with the fractional precision of the DATETIMEOFFSET DeterministaDeterministic
TODATETIMEOFFSETTODATETIMEOFFSET TODATETIMEOFFSET (expression, time_zone)TODATETIMEOFFSET (expression , time_zone) TODATETIMEOFFSET transforma un valor datetime2 en un valor datetimeoffset.TODATETIMEOFFSET transforms a datetime2 value into a datetimeoffset value. TODATETIMEOFFSET interpreta el valor datetime2 en la hora local, para el valor time_zone especificado.TODATETIMEOFFSET interprets the datetime2 value in local time, for the specified time_zone. datetimeoffset con la precisión fraccionaria del argumento datetimedatetimeoffset with the fractional precision of the datetime argument DeterministaDeterministic

Funciones que establecen o devuelven funciones de formato de sesiónFunctions That Set or Return Session Format Functions

FunciónFunction SintaxisSyntax Valor devueltoReturn value Tipo de datos devueltoReturn data type DeterminismoDeterminism
@@DATEFIRST@@DATEFIRST @@DATEFIRST@@DATEFIRST Devuelve el valor actual, para la sesión, de SET DATEFIRST.Returns the current value, for the session, of SET DATEFIRST. tinyinttinyint No deterministaNondeterministic
SET DATEFIRSTSET DATEFIRST SET DATEFIRST { number | @number_var }SET DATEFIRST { number | @number_var } Establece el primer día de la semana en un número del 1 al 7.Sets the first day of the week to a number from 1 through 7. No aplicableNot applicable No aplicableNot applicable
SET DATEFORMATSET DATEFORMAT SET DATEFORMAT { format | @format_var }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.Sets the order of the dateparts (month/day/year) for entering datetime or smalldatetime data. No aplicableNot applicable No aplicableNot applicable
@@LANGUAGE@@LANGUAGE @@LANGUAGE@@LANGUAGE Devuelve el nombre del idioma que se está usando.Returns the name of the language in current used. @@LANGUAGE no es ninguna función de fecha u hora.@@LANGUAGE is not a date or time function. Sin embargo, la configuración de idioma puede afectar a la salida de las funciones de fecha.However, the language setting can affect the output of date functions. No aplicableNot applicable No aplicableNot applicable
SET LANGUAGESET LANGUAGE SET LANGUAGE { [ N ] 'language' | @language_var }SET LANGUAGE { [ N ] 'language' | @language_var } Establece el entorno del idioma de la sesión y los mensajes del sistema.Sets the language environment for the session and system messages. SET LANGUAGE no es ninguna función de fecha u hora.SET LANGUAGE is not a date or time function. Sin embargo, la configuración de idioma afecta a la salida de las funciones de fecha.However, the language setting affects the output of date functions. No aplicableNot applicable No aplicableNot applicable
sp_helplanguagesp_helplanguage sp_helplanguage [ [ @language = ] 'language' ]sp_helplanguage [ [ @language = ] 'language' ] Devuelve información sobre los formatos de fecha de todos los idiomas compatibles.Returns information about date formats of all supported languages. sp_helplanguage no es un procedimiento almacenado de fecha u hora.sp_helplanguage is not a date or time stored procedure. Sin embargo, la configuración de idioma afecta a la salida de las funciones de fecha.However, the language setting affects the output of date functions. No aplicableNot applicable No aplicableNot applicable

Funciones que validan valores de fecha y horaFunctions That Validate Date and Time Values

FunciónFunction SintaxisSyntax Valor devueltoReturn value Tipo de datos devueltoReturn data type DeterminismoDeterminism
ISDATEISDATE ISDATE (expression)ISDATE ( expression ) Determina si una expresión de entrada datetime o smalldatetime tiene un valor de fecha u hora válido.Determines whether a datetime or smalldatetime input expression has a valid date or time value. intint 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.ISDATE is deterministic only used with the CONVERT function, when the CONVERT style parameter is specified, and when style is not equal to 0, 100, 9, or 109.

Temas relacionados con la fecha y horaDate and time-related topics

TemaTopic DescripciónDescription
CAST y CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL) 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.Provides information about the conversion of date and time values to and from string literals, and other date and time formats.
Escribir instrucciones Transact-SQL internacionalesWrite International Transact-SQL Statements Proporciona directrices para la portabilidad de bases datos y aplicaciones de bases de datos que utilizan instrucciones Transact-SQLTransact-SQL de un idioma a otro, o que admiten varios idiomas.Provides guidelines for portability of databases and database applications that use Transact-SQLTransact-SQL statements from one language to another, or that support multiple languages.
Funciones escalares de ODBC (Transact-SQL)ODBC Scalar Functions (Transact-SQL) Proporciona información sobre funciones escalares de ODBC que se pueden usar en instrucciones Transact-SQLTransact-SQL.Provides information about ODBC scalar functions available for use in Transact-SQLTransact-SQL statements. Esto incluye las funciones de fecha y hora ODBC.This includes ODBC date and time functions.
AT TIME ZONE (Transact-SQL)AT TIME ZONE (Transact-SQL) Proporciona la conversión de zona horaria.Provides time zone conversion.

Vea tambiénSee also

FuncionesFunctions
Tipos de datos (Transact-SQL)Data Types (Transact-SQL)