sql >> Base de Datos >  >> RDS >> Sqlserver

¿Por qué 1899-12-30 es la fecha cero en Access / SQL Server en lugar de 12/31?

Manteniendo la compatibilidad con Lotus 1-2-3 en el pasado, que tenía un error porque pensaba que el año 1900 era un año bisiesto (¿o pretendía?).

La explicación es demasiado larga para citarla, pero por curiosidad, aquí hay algunos fragmentos.

  • http://blogs.msdn.com/b/ericlippert/archive/2003/09/16/53013.aspx

  • http://www.joelonsoftware.com/items/2006/06/16.html

1900 no fue un año bisiesto.

"¡Es un error en Excel!" exclamé.

"Bueno, en realidad no", dijo Ed. "Tuvimos que hacerlo de esa manera porque necesitamos poder importar hojas de trabajo de Lotus 123".

"Entonces, ¿es un error en Lotus 123?"

"Sí, pero probablemente uno intencional. Lotus tuvo que caber en 640K. Eso no es mucha memoria. Si ignora 1900, puede averiguar si un año determinado es un año bisiesto simplemente mirando para ver si los dos bits más a la derecha son cero. Eso es realmente rápido y fácil. Los muchachos de Lotus probablemente pensaron que no importaba estar mal durante esos dos meses en el pasado. Parece que los muchachos de Basic querían ser anales sobre esos dos meses, así que movieron el época de un día atrás."

  • http://www.cpearson.com/excel/datetime.htm

En realidad, este número es uno mayor que el número real de días. Esto se debe a que Excel se comporta como si existiera la fecha 29 de febrero de 1900. No lo hizo. El año 1900 no fue un año bisiesto (el año 2000 es un año bisiesto). En Excel, el día posterior al 28 de febrero de 1900 es el 29 de febrero de 1900. En realidad, el día después del 28 de febrero de 1900 fue el 1 de marzo de 1900. Esto no es un error". De hecho, es por diseño. Excel funciona de esta manera porque realmente era un error en Lotus 123. Cuando se introdujo Excel, 123 tenía casi todo el mercado de software de hojas de cálculo. Microsoft decidió continuar con el error de Lotus, con el fin de ser totalmente compatible. Los usuarios que cambiaron de 123 a Excel no tendrían que hacer ningún cambio en sus datos. Siempre que todas sus fechas sean posteriores al 1 de marzo de 1900, esto no debería ser motivo de preocupación.