Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

DATEDIFF (Transact-SQL)

Devuelve el número de límites de fecha y hora entre dos fechas especificadas.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL


DATEDIFF ( datepart , startdate , enddate )

datepart

Es el parámetro que indica en qué parte de la fecha se calcula la diferencia. En la siguiente tabla se enumeran las partes de las fechas y abreviaturas reconocidas por SQL Server 2005. Estas partes de fecha y abreviaturas no se pueden suministrar como una variable declarada por el usuario.

Parte de la fecha Abreviaturas

year

yy, yyyy

quarter

qq, q

month

mm, m

dayofyear

dy, y

day

dd, d

week

wk, ww

Hour

hh

minute

mi, n

second

ss, s

millisecond

ms

startdate -

Es la fecha de comienzo del cálculo. startdate es una expresión que devuelve un valor datetime o smalldatetime, o bien una cadena de caracteres con formato de fecha.

Puesto que smalldatetime es exacto únicamente en el minuto, cuando se utiliza un valor smalldatetime los segundos y milisegundos son siempre 0.

Si especifica solamente los dos últimos dígitos del año, los valores menores o iguales que los dos últimos dígitos del valor de la opción de configuración two-digit year cutoff (reducción del año a dos dígitos) pertenecen al mismo siglo que el año límite. Los valores mayores que los dos últimos dígitos del valor de esta opción se consideran del siglo anterior al año límite. Por ejemplo, si two-digit year cutoff es 2049 (valor predeterminado), 49 se interpreta como 2049 y 50 se interpreta como 1950. Para evitar ambigüedades, utilice años de cuatro dígitos.

Para obtener más información acerca de cómo especificar valores de hora, vea Formatos de hora. Para obtener más información acerca de cómo especificar fechas, vea Date y Time (Transact-SQL).

enddate

Es la fecha final para el cálculo. enddate es una expresión que devuelve un valor datetime o smalldatetime, o bien una cadena de caracteres con formato de fecha.

startdate se resta de enddate. Si startdate es posterior a enddate, se devuelve un valor negativo.

DATEDIFF produce un error si el resultado está fuera del intervalo de valores enteros. Para los milisegundos, el número máximo es de 24 días, 20 horas, 31 minutos y 23.647 segundos. Para los segundos, el número máximo es 68 años.

El método para contar los límites que hay, tales como minutos, segundos y milisegundos, hace que el resultado dado por DATEDIFF sea coherente en todos los tipos de datos. El resultado es un valor entero con signo igual al número de límites datepart que hay entre la primera y la segunda fecha. Por ejemplo, el número de semanas que hay entre el domingo 4 de enero y el sábado 11 de enero es 1.

En el siguiente ejemplo se determina la diferencia en días entre la fecha actual y la fecha de pedido de los productos de la base de datos AdventureWorks.

USE AdventureWorks;
GO
SELECT DATEDIFF(day, OrderDate, GETDATE()) AS NumberOfDays
FROM Sales.SalesOrderHeader;
GO

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft