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

  • 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 la fecha y hora

  • 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

Desplazamiento 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 obsoleto 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 2008 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 la instancia de SQL Server se está ejecutando. 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 datetime2(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 no está incluido.

datetime

No determinista

GETDATE

GETDATE ( )

Devuelve un valor datetime2(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 no está incluido.

datetime

No determinista

GETUTCDATE

GETUTCDATE ( )

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 una hora universal coordinada (UTC).

datetime

No determinista

Funciones que obtienen partes de la 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

Determinista

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

El tipo de datos del argumento date.

Determinista

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 sólo 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

Usar datos de fecha y hora

Proporciona información y ejemplos comunes a las funciones y tipos de datos de fecha y hora.

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.

Asignación de tipos de datos con consultas distribuidas

Proporciona información sobre cómo los tipos de datos de fecha y hora afectan a las consultas distribuidas entre servidores que tienen versiones diferentes de SQL Server o proveedores diferentes.