DATEDIFF (Transact-SQL)

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

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

DATEDIFF ( datepart , startdate , enddate )

Argumentos

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

Tipos de valor devueltos

integer

Notas

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.

Ejemplos

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

Vea también

Referencia

CAST y CONVERT (Transact-SQL)
Tipos de datos (Transact-SQL)
Funciones de fecha y hora (Transact-SQL)

Otros recursos

Formato ISO 8601
Formato alfabético de fecha
Formato numérico de fecha
Formato de fecha y hora de ODBC
Formatos de hora
Formato de cadena sin separar

Ayuda e información

Obtener ayuda sobre SQL Server 2005