sql >> Databáze >  >> RDS >> Mysql

Volitelný měsíc nebo den v datovém poli MySQL z PHP

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é.



  1. Hledání pokročilého stránkovacího skriptu php/mysql

  2. Aktualizujte více řádků pomocí několika klauzulí „kde“ pro každý jednotlivý řádek

  3. SQL NOT operátor

  4. Způsoby sledování odstraněné databáze na serveru SQL