SQL diferencia de fecha y hora en el día
-
29-09-2019 - |
Pregunta
Estoy tratando de encontrar cuántos días hay entre dos fechas. He estado tratando de utilizar esto:
SET Days_Outstanding = DATEDIFF(day, CONVERT(datetime, LS_CHG_DTE_EQP, 1), CONVERT(datetime, Report_Date, 1))
Sin embargo, esto no se devuelve el número de días. Es el retorno de una fecha y hora en años que no tienen nada que ver con mi conjunto de datos.
No estoy seguro de dónde está el problema, todavía bastante nuevo en SQL. Además, he Days_Outstanding definido como un entero, puede ser eso el problema? Gracias!
editar
Gracias a todos! No está seguro de lo que pasó, he cambiado algunas cosas a lo que usted sugiere y terminé trabajando cuando fui de nuevo a lo que tenía originalmente. No está seguro de lo que pasó. Gracias pensaron!
Solución
retornos DATEDIFF
entero
Sin embargo, el número de días podría estar equivocado normal en función de los valores / tipo de datos de LS_CHG_DTE_EQP/Report_Date
y locale
Además, DATEDIFF
no funciona en los límites diarios períodos de 24 horas. Así 23:56
a 00:02
es un día.
Si no, por favor agregue ejemplo de entrada y de salida.
Otros consejos
Ejemplo
select DATEDIFF(dd,'20100101',getdate())
devolverá 227 hoy
por lo que en su caso asumiendo LS_CHG_DTE_EQP y Report_Date son las dos columnas de fecha y hora
SET @Days_Outstanding = DATEDIFF(day, LS_CHG_DTE_EQP, Report_Date)
¿Ha tratado simplemente
SET Days_Outstanding = CONVERT(datetime, LS_CHG_DTE_EQP, 1) - CONVERT(datetime, Report_Date, 1))