Ich versuche die Gesamtzahl der Tage zwischen zwei Tagen zu ermitteln:
1/1/2011
3/1/2011
RETURN
62
Ist es in SQL Server möglich?
PRINT DATEDIFF(DAY, '1/1/2011', '3/1/2011')
gibt Ihnen das, wonach Sie suchen.
Dies gibt an, wie oft die Mitternachtsgrenze zwischen den beiden Daten überschritten wird. Sie können entscheiden, ob Sie ein Datum hinzufügen müssen, wenn Sie beide Datumsangaben in die Zählung aufnehmen.
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);
Siehe DateDiff :
DECLARE @startdate date = '2011/1/1'
DECLARE @enddate date = '2011/3/1'
SELECT DATEDIFF(day, @startdate, @enddate)
Sie können diesen MSDN-Link versuchen
DATEDIFF ( datepart , startdate , enddate )
SELECT DATEDIFF(DAY, '1/1/2011', '3/1/2011')
Ein anderes Datumsformat
select datediff(day,'20110101','20110301')
SELECT DATEDIFF(day, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
wenn Sie die gleiche Prozedur speichern 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
wobei @fromdate und @todate Parameter des SP sind