SERVIDOR SQL: Obtenga días totales entre dos fechas

146

Estoy tratando de obtener el número total de días entre dos días:

1/1/2011
3/1/2011

RETURN
62

¿Es posible hacerlo en SQL Server?

Pod Mays
fuente
2
El número de días entre 1/1 y 3/1 nunca devolvería 62 en nuestro calendario actual.
Devolvería
77
Y si no estás en los EE. UU., Volverá 2 días.
MGOwen

Respuestas:

287

PRINT DATEDIFF(DAY, '1/1/2011', '3/1/2011') te dará lo que buscas.

Esto proporciona el número de veces que se cruza el límite de medianoche entre las dos fechas. Puede decidir si necesita agregar uno a esto si incluye ambas fechas en el recuento, o restar uno si no desea incluir ninguna de las fechas.

Will A
fuente
También procede datetime y datetime2 como un encanto como puedo ver en mis resultados.
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
fuente
17

Puedes probar este enlace de MSDN

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

Ver DateDiff :

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

Otro formato de fecha

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

Esto es trabajo para mí -

SELECT DATEDIFF(DAY, startdate, enddate) AS DayCount

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

si desea hacer el mismo procedimiento de almacenamiento, debe aplicar el siguiente código.

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

donde @fromdate y @todate es el parámetro del SP

Bha15
fuente
-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
fuente
2
¿Puedes por favor explicar tu respuesta? Las respuestas de solo código a menudo pueden ser difíciles de interpretar.
Jordan Kasper el