Compartir a través de


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

time

hh:mm:ss[. nnnnnnn]

De 00:00:00.0000000 a 23:59:59.9999999

100 nanosegundos

De 3 a 5

No

date

AAAA-MM-DD

De 0001-01-01 a 9999-12-31

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

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

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

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

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

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

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

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

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

DATENAME ( datepart , date )

Devuelve una cadena de caracteres que representa el datepart especificado de la fecha especificada.

nvarchar

No determinista

DATEPART

DATEPART ( datepart , date )

Devuelve un entero que representa el datepart especificado del date especificado.

int

No determinista

DAY

DAY ( date )

Devuelve un entero que representa la parte del día de date especificado.

int

Determinista

MONTH

MONTH ( date )

Devuelve un entero que representa la parte del mes de un date especificado.

int

Determinista

YEAR

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

DATEFROMPARTS ( year, month, day )

Devuelve un valor de tipo date para el año, mes y día especificados.

date

Determinístico

DATETIME2FROMPARTS

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

DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds )

Devuelve un valor datetime para la fecha y la hora especificadas.

datetime

Determinístico

DATETIMEOFFSETFROMPARTS

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

SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute )

Devuelve un valor smalldatetime para la fecha y la hora especificadas.

smalldatetime

Determinístico

TIMEFROMPARTS

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

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

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

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

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

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

@@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á 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

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 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

CAST y 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.

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 (Transact-SQL)

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.

Vea también

Referencia

Funciones integradas (Transact-SQL)

Tipos de datos (Transact-SQL)