SERWER SQL: Pobierz całkowitą liczbę dni między dwiema datami


146

Próbuję uzyskać całkowitą liczbę dni między dwoma dniami:

1/1/2011
3/1/2011

RETURN
62

Czy można to zrobić w SQL Server?


2
Liczba dni między 1/1 a 3/1 nigdy nie zwróci 62 w naszym bieżącym kalendarzu.
Zwróci

7
A jeśli nie jesteś w USA, zwrot za 2 dni.
MGOwen

Odpowiedzi:


287

PRINT DATEDIFF(DAY, '1/1/2011', '3/1/2011') da ci to, czego szukasz.

Daje to, ile razy granica północy jest przekraczana między dwiema datami. Możesz zdecydować się dodać jedną do tego, jeśli uwzględniasz obie daty w liczeniu - lub odjąć jedną, jeśli nie chcesz uwzględniać żadnej z dat.


Jak widzę w moich wynikach, przebiega również z datetime i datetime2 jak urok.
Honza P.

39

SQL Server DateDiff

DECLARE @startdate datetime2 = '2007-05-05 12:10:09.3312722';
DECLARE @enddate datetime2 = '2009-05-04 12:10:09.3312722'; 
SELECT DATEDIFF(day, @startdate, @enddate);


16

Zobacz DateDiff :

DECLARE @startdate date = '2011/1/1'
DECLARE @enddate date = '2011/3/1'
SELECT DATEDIFF(day, @startdate, @enddate)


4
SELECT DATEDIFF(day, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');

0

To działa dla mnie -

SELECT DATEDIFF(DAY, startdate, enddate) AS DayCount

Example : SELECT DATEDIFF(DAY, '11/30/2019', GETDATE()) AS DayCount

-1

jeśli chcesz zrobić to samo Procedura sklepu, musisz zastosować poniższy kod.

select  (datediff(dd,'+CHAR(39)+ convert(varchar(10),@FromDate  ,101)+ 
 CHAR(39)+','+CHAR(39)+ convert(varchar(10),@ToDate  ,101) + CHAR(39) +')) 
 Daysdiff

gdzie @fromdate i @todate to parametr SP


-1
DECLARE @FDate DATETIME='05-05-2019' /*This is first date*/
 GETDATE()/*This is Current date*/
SELECT (DATEDIFF(DAY,(@LastDate),GETDATE())) As DifferenceDays/*this query will return no of days between firstdate & Current date*/

2
Czy możesz wyjaśnić swoją odpowiedź? Odpowiedzi zawierające tylko kod mogą być często trudne do zinterpretowania.
Jordan Kasper
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.