Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Mês ou dia opcional no campo de data do MySQL do PHP


Em muitas ocasiões, precisamos de datas "mais ou menos precisas", e eu uso datas como 2011-04-01 (preciso), bem como 2011-04 (=abril de 2011) e 2011 (data somente do ano) nos metadados dos arquivos. Como você mencionou, o campo de data do MySQL tolera '2011-00-00', embora nenhum FAQ fale sobre isso, e está tudo bem.
Mas então, eu tive que fazer a interface do MySQL database via ODBC e os campos de data estão traduzidos corretamente, exceto as datas 'toleradas' (Ex:resultados '2011-04-00' vazios no banco de dados ACCESS conectado ao MySQL-ODBC resultante.
Por esse motivo, cheguei à conclusão de que o campo de data do MySQL pode ser convertido em um VARCHAR(10) simples field :Contanto que não precisemos de funções de data específicas do MySQL, funciona bem e, claro, ainda podemos usar funções de data do php e sua função date_php2mysql().

Eu diria que o único caso em que um campo de data do MySQL é necessário é quando se precisa de consultas SQL complexas, usando MySQL funções de data na própria consulta. (Mas essas consultas não funcionariam mais em datas 'mais ou menos precisas'!...)

Conclusão :Para datas 'mais ou menos precisas', atualmente descarto o campo de data do MySQL e uso VARCHAR(10) simples campo com aaaa-mm-jj dados formatados. Simples é bonito.