SqlHints.com

También, para «DateTime2» (frente a «DateTime»):

1. El uso de la función» DateAdd » no es una solución trivial para no tener una conversión implícita / fácil a un número numérico de punto flotante (# de días.fracción de un día) desde fecha-hora mínima, esp. está tratando de tener en cuenta varias partes (si no todas) de la fecha (es decir, sumar / restar 2 fechas completas juntas / una de la otra).

2. No se puede calcular fácilmente la » edad «(por ejemplo, restando un» DateTime » de otro vs. uso de la función «DateDiff» que no devuelve «edad» cuando las dos fechas están en lados opuestos de un límite de calendario / reloj de la unidad especificada).

3. No se puede usar fácilmente en la función de agregado «Avg»(simplemente «Cast»‘ing para «Flotar»primero y de vuelta a «DateTime»). Por cierto, si estás preguntando cuál es el propósito de obtener un «Promedio» de fechas: además de usar para obtener la duración promedio cuando se usan las fechas y horas (ya que una fecha y hora base común) para representar la duración (una práctica común), también es útil obtener estadísticas de tipo panel sobre cuál es la fecha y hora promedio en un rango / grupo de fechas y horas. Una consulta ad hoc estándar para investigar / solucionar problemas de valores en una columna que puede que ya no sea válida o que deba ser obsoleta consiste en enumerar para cada valor el recuento de ocurrencias y (si está disponible) las marcas de fecha y hora min, avg y max asociadas con ese valor.

Sí, me doy cuenta de que hay una fórmula de solución alternativa (bastante compleja) (en «https://siderite.blogspot.com/2015/08/how-to-translate-t-sql-datetime2-to.html»), pero incluso esa fórmula solo funciona para fechas más recientes que el año 1970 (lo que significa que pierde todo el rango extra *más* 217 años y ese rango extra es probablemente (supuestamente) uno de los 2 mayores pros de «DateTime2», aunque probablemente no sea necesario en la mayoría de los casos de uso), y no es necesariamente trivial hacer que admita más rango debido a posibles problemas de desbordamiento numérico.

Y, sí, me doy cuenta de que también podría «Convertir» a «DateTime» primero (y si es necesario volver a «DateTime2»), pero perdería la precisión extra y nuevamente, los beneficios de rango extra (todos anteriores al año 1753) de «DateTime2» vs. «DateTime», que de nuevo son probablemente los 2 más grandes y también al mismo tiempo, probablemente probablemente no sean necesarios, lo que plantea la pregunta de por qué usarlo cuando pierde las conversiones implícitas / fáciles a números de coma flotante (# de días) para suma / resta / «edad» (vs. DateDiff) / beneficio promedio de calcs, que es grande en mi experiencia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

More: