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!

¿Fue útil?

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))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top