SQL SERVER: Ermittelt die Gesamtzahl der Tage zwischen zwei Daten

146

Ich versuche, die Gesamtzahl der Tage zwischen zwei Tagen zu ermitteln:

1/1/2011
3/1/2011

RETURN
62

Ist das in SQL Server möglich?

Pod Mays
quelle
2
Die Anzahl der Tage zwischen 1/1 und 3/1 würde in unserem aktuellen Kalender niemals 62 zurückgeben. Es würde entweder 58 oder 59 zurückgeben. Selbst wenn Sie den Starttag und den
Endtag angeben
7
Und wenn Sie nicht in den USA sind, wird es 2 Tage zurückgeben.
MGOwen

Antworten:

287

PRINT DATEDIFF(DAY, '1/1/2011', '3/1/2011') wird dir geben, wonach du suchst.

Dies gibt an, wie oft die Mitternachtsgrenze zwischen den beiden Daten überschritten wird. Möglicherweise müssen Sie eines hinzufügen, wenn Sie beide Daten in die Zählung einbeziehen - oder eines subtrahieren, wenn Sie keines der beiden Daten einbeziehen möchten.

Will A.
quelle
Es läuft auch datetime und datetime2 wie ein Zauber ab, wie ich in meinen Ergebnissen sehen kann.
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);
Khepri
quelle
17

Sie können diesen MSDN-Link ausprobieren

DATEDIFF ( datepart , startdate , enddate )
SELECT DATEDIFF(DAY, '1/1/2011', '3/1/2011')
Marmeladen
quelle
16

Siehe DateDiff :

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

Ein anderes Datumsformat

select datediff(day,'20110101','20110301')
Cakiran
quelle
4
SELECT DATEDIFF(day, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
VMAtm
quelle
0

Das funktioniert bei mir -

SELECT DATEDIFF(DAY, startdate, enddate) AS DayCount

Example : SELECT DATEDIFF(DAY, '11/30/2019', GETDATE()) AS DayCount
bulbul bd
quelle
-1

Wenn Sie dasselbe tun möchten, müssen Sie den folgenden Code anwenden.

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

Dabei ist @fromdate und @todate der Parameter des SP

Bha15
quelle
-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*/
JIYAUL MUSTAPHA
quelle
2
Können Sie bitte Ihre Antwort erklären? Nur-Code-Antworten sind oft schwer zu interpretieren.
Jordan Kasper