Udostępnij za pośrednictwem


Tekst DATEDIFF (wyrażenia SSIS)

Podaje wartość liczby data i czas granice przekraczane między dwiema określonymi datami.The datepart parameter identifies which data and czas boundaries to compare.

DATEDIFF(datepart, startdate, endate)

Argumenty

  • datepart
    Jest to parametr, która określa która część data do porównania i zwrócić wartość w polu.

  • startdate
    Jest to data początkowa interwału.

  • endate
    Jest to data zakończenia interwału.

Typy wynik

DT_I4

Remarks

Następujące tabela dateparts i skróty rozpoznawane przez modułu szacującego wyrażenie.

W parametrze datepart

Skróty

Rok

dd, rrrr

Kwartał

qq, q

Miesiąc

mm, m

Dayofyear

dy x, y

Dzień

dd d

Tydzień

Wk ww

Dzień tygodnia

DW, m

Godziny

Hh

Minuta

mi n

Sekundy

ss, s

Milisekundy

Pani

Tekst DATEDIFF zwraca wynik wartości null, jeśli którykolwiek z argumentów ma wartość null.

Literał daty musi jawnie rzutować na jeden z typów danych Data.Aby uzyskać więcej informacji zobaczTypy danych usług integracja.

Uwaga

Wyrażenie nie powiedzie się sprawdzanie poprawności podczas literał daty jest jawnie oddane do jednego z tych typów danych Data: DT_DBTIMESTAMPOFFSET DT_DBTIMESTAMP2 i DT_DBTIME2.

Jeśli data nie jest prawidłowy, jednostka daty lub godziny nie jest ciągiem, jeśli daty rozpoczęcia nie jest data lub Data końcowa jest datą, wystąpi błąd.

Jeśli data zakończenia jest wcześniejsza niż data rozpoczęcia, funkcja zwraca wartość ujemną.Jeśli daty rozpoczęcia i zakończenia są równe lub mieszczą się w tym samym interwałem, funkcja zwraca wartość zero.

Przykłady

Ten przykład oblicza liczbę dni między dwiema data literałów.Jeśli data jest w formacie "mm/dd/rrrr", funkcja zwraca 7.

DATEDIFF("dd", (DT_DBTIMESTAMP)"8/1/2003", (DT_DBTIMESTAMP)"8/8/2003")

W tym przykładzie zwraca liczbę miesięcy między data literału a bieżącą data.

DATEDIFF("mm", (DT_DBTIMESTAMP)"8/1/2003",GETDATE())

W tym przykładzie zwraca liczbę tygodni między dniem w ModifiedDate i kolumn YearEndDate zmiennej.Jeśli YearEndDate has a date wymagany jest typ danych, nie wyraźnej rzutowania.

DATEDIFF("Week", ModifiedDate,@YearEndDate)