V mnoha případech potřebujeme taková „více či méně přesná“ data a já používám taková data jako 2011-04-01
(přesné), stejně jako 2011-04
(=duben 2011) a 2011
(pouze rok) v metadatech archivů. Jak jste zmínil, pole data MySQL toleruje '2011-00-00', i když se o tom neříkají žádné FAQ, a je to v pořádku.
Ale pak jsem musel propojit MySQL database
přes ODBC
a pole data jsou správně přeložena, kromě 'tolerovaných' dat (Příklad:'2011-04-00' výsledky ve výsledné databázi ACCESS připojené k MySQL-ODBC jsou prázdné.
Z toho důvodu jsem dospěl k závěru, že pole data MySQL lze převést na prosté VARCHAR(10)
pole :Dokud nepotřebujeme specifické funkce data MySQL, funguje to dobře a samozřejmě můžeme stále používat funkce data php a vaši funkci fine date_php2mysql().
Řekl bych, že jediný případ, kdy je potřeba pole data MySQL, je, když člověk potřebuje složité SQL dotazy pomocí MySQL
funkce data v dotazu samotném. (Ale takové dotazy by již nefungovaly na „více či méně přesných“ datech!...)
Závěr :Pro „více či méně přesná“ data v současné době zahazuji datové pole MySQL a používám prostý VARCHAR(10)
pole s aaaa-mm-jj
formátovaná data. Jednoduché je krásné.