Jak mogę poprawnie obliczyć różnicę w dniach lub latach między kolumną daty a bieżącą datą?

Zazwyczaj użyjeby

  where date_diff('day, date_column1, date_column2) as difference

Więc czego potrzebuję, jest to, że różnica między kolumną daty a dzisiejszą datą wynosi 3 dni, a następnie 3 lub 3 lata, a następnie 3.

Dzięki

1
Chris90 15 styczeń 2020, 20:12

1 odpowiedź

Najlepsza odpowiedź

W SQL Server możesz użyć następującego zapytania (wymień datę za pomocą pola):

SELECT CASE WHEN datediff(year, '20120303', getdate()) > 1 
   THEN datediff(year, '20120303', getdate()) 
   ELSE datediff(day, '20120303', getdate()) END AS Diff

Korzystanie z próbki:

SELECT CASE WHEN datediff(year, date_column, getdate()) > 1 
   THEN datediff(year, date_column, getdate()) 
   ELSE datediff(day, date_column, getdate()) END AS Diff
1
Nicola Lepetit 15 styczeń 2020, 17:28