sql >> Database teknologi >  >> RDS >> Mysql

Valgfri måned eller dag i MySQL-datofeltet fra PHP

I mange tilfælde har vi brug for sådanne 'mere eller mindre præcise' datoer, og jeg bruger sådanne datoer som 2011-04-01 (præcis), samt 2011-04 (=april 2011) og 2011 (dato kun år) i arkivmetadata. Som du nævner det, tolererer MySQL-datofeltet '2011-00-00', selvom ingen ofte stillede spørgsmål fortæller om det, og det er fint.
Men så var jeg nødt til at forbinde MySQL database via ODBC og datofelterne er korrekt oversat, bortset fra de 'tolererede' datoer (eks.:'2011-04-00' resultater tomme i den resulterende MySQL-ODBC-forbundne ACCESS-database.
Af den grund kom jeg til den konklusion, at MySQL-datofeltet kunne konverteres til en almindelig VARCHAR(10) field :Så længe vi ikke har brug for specifikke MySQL-datofunktioner, fungerer det fint, og vi kan selvfølgelig stadig bruge php-datofunktioner og din fine date_php2mysql()-funktion.

Jeg vil sige, at det eneste tilfælde, hvor et MySQL-datofelt er nødvendigt, er, når man har brug for komplekse SQL-forespørgsler ved hjælp af MySQL dato fungerer i selve forespørgslen.(Men sådanne forespørgsler ville ikke fungere længere på 'mere eller mindre præcise' datoer!...)

Konklusion :For "mere eller mindre præcise" datoer kasserer jeg i øjeblikket MySQL-datofeltet og bruger almindeligt VARCHAR(10) felt med aaaa-mm-jj formaterede data. Enkelt er smukt.



  1. Hvordan får jeg adgang til mysql uden for min kubernetes-klynge?

  2. Hvad jeg gerne vil se i Amazon EC2 for Database Management

  3. Kombiner PowerShell og SQL Diagnostic Manager for at automatisere SQL Server-overvågning

  4. MySQL REPLACE:Sådan erstatter alle forekomster af en char i hver enkelt understreng afgrænset af samme hoved og hale