SQL Server : 두 날짜 사이의 총 일수 가져 오기


146

이틀 사이에 총 일수를 얻으려고합니다.

1/1/2011
3/1/2011

RETURN
62

SQL Server에서 할 수 있습니까?


2
1/1과 3/1 사이 의 날짜 수는 현재 달력에서 62를 반환 하지 않습니다 . 시작일과 종료일을 포함하더라도 60 또는 61이됩니다.
TylerH

7
미국에 거주하지 않는 경우 2 일이 소요됩니다.
MGOwen

답변:


287

PRINT DATEDIFF(DAY, '1/1/2011', '3/1/2011') 당신이 무엇을하는지 알려줄 것입니다.

이것은 두 날짜 사이에 자정 경계가 교차 된 횟수를 제공합니다. 카운트에 두 날짜를 모두 포함하는 경우 여기에 날짜를 추가하거나 날짜를 포함하지 않으려면 날짜를 빼도록 결정할 수 있습니다.


또한 결과에서 볼 수 있듯이 datetime 및 datetime2를 매력처럼 진행합니다.
Honza P.

39

SQL Server 날짜 차이

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);

17

MSDN 링크를 사용해 볼 수 있습니다

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

16

DateDiff 참조 :

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

12

다른 날짜 형식

select datediff(day,'20110101','20110301')

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

0

이것은 나를 위해 일하고 있습니다-

SELECT DATEDIFF(DAY, startdate, enddate) AS DayCount

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

-1

동일한 저장 절차를 수행하려면 아래 코드를 적용해야합니다.

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의 매개 변수입니다.


-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
답을 설명해 주시겠습니까? 코드 전용 답변은 종종 해석하기 어려울 수 있습니다.
Jordan Kasper
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.