SQL DATEDIFF() function

SQL DATEDIFF() function


    


DEFINICJA

Funkcja DATEDIFF() zwraca różnicę, w zdefiniowanych jednostkach, między dwiema datami.
!!! UWAGA !!! nie we wszystkich środowiskach bazodanowych funkcja DATEDIFF() działa tak samo. Poniższe przykłady pochodzą z SQL SERVER-a.

SQL DATEDIFF() składnia funkcji

SELECT
        DATEDIFF(parametr1 , parametr2 , parametr3)

parametry:
parametr1 – definiujemy w jakich jednostkach funkcja ma zwrócić różnicę np. jeśli w latach to YEAR, w miesiącach to MONTH itd
parametr2 – data początkowa (wcześniejsza)
parametr3 – data końcowa (późniejsza)


Przykład zastosowania DATEDIFF() (baza Adventureworks)

Wyświetl wszystkie zamówienia klienta o identyfikatorze 29825 i pokaż ile lat temu było składane każde z jego zamówień.

SELECT
     O.CustomerID AS [Identyfikator klienta]
    ,O.SalesOrderID AS [Identyfikator zamówienia]
    ,DATEDIFF( YEAR , O.OrderDate , GETDATE()) AS [Różnica w latach]
FROM
    Sales.SalesOrderHeader O
WHERE
    O.CustomerID = 29825


 Przykład zastosowania DATEDIFF() (baza Northwind)

Oblicz staż pracy dla każdego pracownika.

SELECT
     E.LastName + ' ' + E.FirstName AS [Nazwisko i Imię]
    ,DATEDIFF( YEAR , E.HireDate , GETDATE()) AS [Staż Pracy]
FROM
    Employees E