2010-03-22 16 views

Respuesta

5

Presumiblemente, si está almacenando fechas más recientes, nunca necesitará más de 256 valores anuales posibles, que se ajusta exactamente a un byte. Esto le ahorra una gran cantidad de espacio: en lugar de utilizar múltiples bytes para almacenar el entero 1901, 1900 años de los cuales pueden considerarse redundantes en muchos casos, MySQL lo trata internamente como el número 1 y lo muestra en 1901 para su beneficio.

Si necesita más años, use un tipo basado en INT.

1

Para ajustar el valor en un solo byte. La elección de 1901-2155 es arbitraria, pero el hecho de que admita valores de 1 byte no lo es.

0

El tipo de año es del tipo de un byte. Un byte = 256 valores. Probablemente hecho de esta manera porque la mayoría de las fechas estarán en ese rango, así que guarda los bytes ...

Puede usar una cadena para fechas anteriores.

+1

No gracias al uso de cadenas. Si el tipo de FECHA ('1000-01-01' a '9999-12-31') no le cubre, entonces agréguelo y use 3 campos enteros, o bien está usando toneladas de almacenamiento innecesario. Es la diferencia entre 4 bytes y 10 bytes. – Matchu

+0

¡Nunca use cuerdas para almacenar fechas! Use el tipo apropiado, a menos que no haya otra forma, usar los tipos adecuados le ofrece todo tipo de beneficios: sin problemas de formato de cadenas, capacidad de extraer partes, clasificación adecuada, cálculo de diferencias entre fechas, etc., etc. –