Solución:
Dice en el manual de MySQL que puede almacenar fechas parciales
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format
Los rangos para los especificadores de mes y día comienzan con cero debido al hecho de que MySQL permite el almacenamiento de fechas incompletas como ‘2014-00-00’.
Esto significa que para almacenar solo el año y el mes, puede utilizar un DATE
columna y poner 00
en lugar del día. p.ej 2013-12-00
.
Relacionado: Almacene la fecha incompleta en el campo de fecha de MySQL
¿Por qué molestarse? Simplemente guárdelo como una fecha completa (quizás siempre usando el primero como el día) y use las funciones de la base de datos MONTH()
y YEAR()
si solo necesitas una parte. Esto hace que usar ese campo sea mucho más fácil, ya que aún puede hacer consultas de rango, etc.
Considere cómo va a utilizar los datos. Si hay algún informe que tenga que crear, ¿de qué manera le permitiría recuperar y trabajar con los datos más fácilmente?
Y no es necesario que utilice un campo de tipo de fecha. Podría tener un campo de año y un campo de mes que sean ambos números enteros. Entonces, cuando realmente necesites hacer cualquier tipo de expresión que requiera una cita, es bastante fácil juntarlos y convertirlos en una cita.
Y almacenar como una fecha con el número de día como 1 y simplemente ignorarlo está perfectamente bien y también es bastante normal. Al final, esta no es una decisión que va a importar mucho (relativamente hablando), así que simplemente elegiría la que más te guste y la haré.