SQL SERVER: получение общих дней между двумя датами
Я пытаюсь получить общее количество дней между двумя днями:
1/1/2011
3/1/2011
RETURN
62
Возможно ли это сделать в SQL Server?
Ответы
Ответ 1
PRINT DATEDIFF(DAY, '1/1/2011', '3/1/2011')
предоставит вам то, что вам нужно.
Это дает количество раз, когда граница полуночи пересекается между двумя датами. Вы можете решить добавить один к этому, если вы включаете обе даты в счетчик - или вычитаете один, если вы не хотите включать ни одну дату.
Ответ 2
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);
Ответ 3
Смотрите DateDiff:
DECLARE @startdate date = '2011/1/1'
DECLARE @enddate date = '2011/3/1'
SELECT DATEDIFF(day, @startdate, @enddate)
Ответ 4
Вы можете попробовать эту ссылку MSDN
DATEDIFF ( datepart , startdate , enddate )
SELECT DATEDIFF(DAY, '1/1/2011', '3/1/2011')
Ответ 5
Другой формат даты
select datediff(day,'20110101','20110301')
Ответ 6
SELECT DATEDIFF(day, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
Ответ 7
если вы хотите сделать то же самое, что и процедура Store, тогда вам нужно применить код ниже.
select (datediff(dd,'+CHAR(39)+ convert(varchar(10),@FromDate ,101)+
CHAR(39)+','+CHAR(39)+ convert(varchar(10),@ToDate ,101) + CHAR(39) +'))
Daysdiff
где @fromdate и @todate являются параметрами SP
Ответ 8
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*/