Si te encuentras con algo que no entiendes puedes dejarnos un comentario y te ayudaremos lo mas rápido que podamos.
Solución:
La decisión de utilizar el 1 de enero de 1753 (1753-01-01
) ya que el valor de fecha mínimo para una fecha y hora en SQL Server se remonta a sus orígenes en Sybase.
Sin embargo, el significado de la fecha en sí se puede atribuir a este hombre.
Philip Stanhope, cuarto conde de Chesterfield. Quien dirigió la Ley del Calendario (Nuevo Estilo) de 1750 a través del Parlamento Británico. Esto legisló para la adopción del calendario gregoriano para Gran Bretaña y sus colonias.
Faltaron algunos días (enlace de archivo de Internet) en el calendario británico en 1752 cuando finalmente se hizo el ajuste del calendario juliano. Se perdieron del 3 de septiembre de 1752 al 13 de septiembre de 1752.
Kalen Delaney explicó la elección de esta manera
Entonces, con 12 días perdidos, ¿cómo puedes calcular las fechas? Por ejemplo, ¿cómo puede calcular el número de días entre el 12 de octubre de 1492 y el 4 de julio de 1776? ¿Incluyes los 12 días que faltan? Para evitar tener que resolver este problema, los desarrolladores originales de Sybase SQL Server decidieron no permitir fechas anteriores a 1753. Puede almacenar fechas anteriores usando campos de caracteres, pero no puede usar ninguna función de fecha y hora con las fechas anteriores que almacena en caracteres. campos.
Sin embargo, la elección de 1753 parece algo anglocéntrica, ya que muchos países católicos de Europa habían estado usando el calendario durante 170 años antes de la implementación británica (originalmente retrasada debido a la oposición de la iglesia). Por el contrario, muchos países no reformaron sus calendarios hasta mucho más tarde, 1918 en Rusia. De hecho, la Revolución de Octubre de 1917 comenzó el 7 de noviembre según el calendario gregoriano.
Ambas cosas datetime
y el nuevo datetime2
El tipo de datos mencionado en la respuesta de Joe no intenta dar cuenta de estas diferencias locales y simplemente usa el calendario gregoriano.
Así que con la mayor variedad de datetime2
SELECT CONVERT(VARCHAR, DATEADD(DAY,-5,CAST('1752-09-13' AS DATETIME2)),100)
Devoluciones
Sep 8 1752 12:00AM
Un punto final con el datetime2
El tipo de datos es que utiliza el calendario gregoriano proléptico proyectado hacia atrás mucho antes de que se inventara, por lo que tiene un uso limitado al tratar con fechas históricas.
Esto contrasta con otras implementaciones de software, como la clase de calendario gregoriano de Java, que por defecto sigue el calendario juliano para las fechas hasta el 4 de octubre de 1582 y luego salta al 15 de octubre de 1582 en el nuevo calendario gregoriano. Maneja correctamente el modelo juliano de año bisiesto anterior a esa fecha y el modelo gregoriano posterior a esa fecha. La persona que llama puede cambiar la fecha límite llamando al setGregorianChange()
.
Se puede encontrar un artículo bastante entretenido que discute algunas peculiaridades más con la adopción del calendario aquí.
Su tatara tatara tatara tatara tatara tatara abuelo debe actualizarse a SQL Server 2008 y usar el tipo de datos DateTime2, que admite fechas en el rango: 0001-01-01 a 9999-12-31.
1752 fue el año en que Gran Bretaña cambió del calendario juliano al gregoriano. Creo que dos semanas en septiembre de 1752 nunca sucedieron como resultado, lo que tiene implicaciones para las fechas en esa área general.
Una explicación: http://uneasysilence.com/archive/2007/08/12008/ (versión de Internet Archive)
Reseñas y valoraciones del post
Finalizando este artículo puedes encontrar los comentarios de otros administradores, tú aún eres capaz insertar el tuyo si te gusta.