sql, Różnica dat

Otrzymałeś(aś) rozwiązanie do zamieszczonego zadania? - podziękuj autorowi rozwiązania! Kliknij
Pawm32
Stały bywalec
Stały bywalec
Posty: 513
Rejestracja: 01 kwie 2020, 18:51
Podziękowania: 191 razy

sql, Różnica dat

Post autor: Pawm32 »

Różnica dat, jak mam zapytać o różnicę dat w latach
Mam DATEDIFF(data1,data2) i to działa ale nie jest w latach
a DATEDIFF(year,data1,data2) mam #1582 - Incorrect parameter count in the call to native function 'DATEDIFF'
ThePPK
Witam na forum
Witam na forum
Posty: 6
Rejestracja: 24 sie 2021, 10:27
Otrzymane podziękowania: 3 razy
Płeć:

Re: sql, Różnica dat

Post autor: ThePPK »

W podanym przez ciebie przykładzie mówisz, że ten fragment działa poprawnie:

Kod: Zaznacz cały

DATEDIFF(data1,data2)
Wskazuje to, iż używasz MySQL. Funkcjonalność, której próbujesz użyć, istnieje wyłącznie w Transact-SQL.

DATEDIFF dla Transact-SQL funkcja wygląda następująco:

Kod: Zaznacz cały

DATEDIFF (część, początek, koniec)
Gdzie część to:
  • year
  • quarter
  • month
  • dayofyear
  • day
  • week
  • hour
  • minute
  • second
  • millisecond
  • microsecond
  • nanosecond
Natomiast DATEDIFF dla MySQL:

Kod: Zaznacz cały

DATEDIFF (koniec, początek)
Możesz również skorzystać ze zwykłego odejmowania lat poprzez:

Kod: Zaznacz cały

SELECT YEAR(data1) - YEAR(data2) AS DateDiff;
Niestety może zwrócić to niechcianą wartość, gdyż przy argumentach "2020/12/31" i "2021/1/1" zwraca różnicę jednego roku, gdzie jest to jeden dzień różnicy.
ODPOWIEDZ