Strona 1 z 1

sql, Różnica dat

: 03 lut 2021, 10:46
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'

Re: sql, Różnica dat

: 25 sie 2021, 19:15
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.