różnica dni między datami

0

chcę obliczyć ilość dni między dwoma datami (MSSQL)
select ((DATEDIFF(DAY, DATEADD(DAY,-1,'2014-04-01'), '2014-06-30')) ) = 91 To jest prawidłowo
ale
select ((DATEDIFF(DAY, DATEADD(DAY,-1,'2014-02-25'), '2014-06-30')) ) = 126To jest nieprawidłowo, powinno być 125

Nie wiem dlaczego.

0

Może spróbuj po prostu:

PRINT DATEDIFF(DAY, '2014/02/25', '2014/06/30')
0
EroSanin napisał(a):

Może spróbuj po prostu:

PRINT DATEDIFF(DAY, '2014/02/25', '2014/06/30')

to zwraca prawidłowo

ale to select DATEDIFF(DAY, '2014/04/01', '2014/06/30') = 90 już nie
powinno być 91 (30 + 31 + 30 )

0

Dlatego że:

select DATEDIFF(DAY, '2014/04/01', '2014/06/30')

zwraca ilość dni od 1 kwietnia do 30 czerwca do godziny 00:00, czyli ten 30 czerwca się już nie wlicza.

0

czyli co mam zrobić żeby oba przypadki zadziałały dobrze?

0

Prawdopodobnie

select  DATEDIFF(DAY, '2014/04/01', '2014/07/01')
0
EroSanin napisał(a):

Prawdopodobnie

select  DATEDIFF(DAY, '2014/04/01', '2014/07/01')

Nie.
Bo dla jednego przypadku to zwraca dobrze a dla drugiego już nie!

0

Działa dokładnie tak samo, luty w 2014 roku miał 28 dni. W obu przypadkach nie wlicza ci ostatniego dnia.

select DATEDIFF(DAY, '2016/02/25', '2016/02/26') zwróci 1 a nie 2.

0
Pele2 napisał(a):

Nie.
Bo dla jednego przypadku to zwraca dobrze a dla drugiego już nie!

Dla obu zwraca tak samo. Po prostu źle z tego korzystasz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1