多くの場合、このような「多かれ少なかれ正確な」日付が必要です。私は2011-04-01
などの日付を使用します。 (正確)、および2011-04
(=2011年4月)および2011
(年のみの日付)アーカイブメタデータ。おっしゃるように、MySQLの日付フィールドは「2011-00-00」を許容しますが、FAQには記載されておらず、問題ありません。
しかし、MySQL database
をインターフェースする必要がありました。 ODBC
経由 日付フィールドは、「許容される」日付を除いて正しく変換されます(例:「2011-04-00」は、結果のMySQL-ODBC接続ACCESSデータベースで空になります。
そのため、私は次の結論に達しました。 MySQLの日付フィールドはプレーンなVARCHAR(10)
に変換できます フィールド:特定のMySQL日付関数を必要としない限り、正常に機能します。もちろん、php日付関数と細かいdate_php2mysql()関数を使用することもできます。
MySQLの日付フィールドが必要な場合は、MySQL
を使用して複雑なSQLクエリが必要な場合のみです。 日付はクエリ自体で機能します(ただし、このようなクエリは「多かれ少なかれ正確な」日付では機能しなくなります!...)
結論 :「多かれ少なかれ正確な」日付については、現在MySQLの日付フィールドを破棄し、プレーンなVARCHAR(10)
を使用しています fieldwith aaaa-mm-jj
フォーマットされたデータ。シンプルは美しいです。