FileMaker で MySQL データベースを使用しています。FileMaker が MySQL テーブルを読み取るとき、m/d/y 形式の日付のみを受け入れるようです。
MySQL データベースのデフォルト形式を YYYY-MM-DD ではなく m/d/y に変更する方法はありますか?
個々の SELECT クエリで DATE_FORMAT() 関数を使用できることはわかっていますが、デフォルトの書式を変更できるかどうかを確認したいと考えています。
FileMaker で MySQL データベースを使用しています。FileMaker が MySQL テーブルを読み取るとき、m/d/y 形式の日付のみを受け入れるようです。
MySQL データベースのデフォルト形式を YYYY-MM-DD ではなく m/d/y に変更する方法はありますか?
個々の SELECT クエリで DATE_FORMAT() 関数を使用できることはわかっていますが、デフォルトの書式を変更できるかどうかを確認したいと考えています。
もう少し読んで、特定のフィールドのフォーマットを変更できることがわかりましたが、お勧めしません。
ALLOW_INVALID_DATESを設定して日付を希望の形式で保存することもできますが、それはお勧めしません。
フィールドにインデックスが付けられていないDATE_FORMAT()
場合、選択を行っているときに呼び出しに問題はありません。唯一の問題は、そのフィールドの選択を行う必要がある場合です。その場合、関数を呼び出しているため、インデックスは使用されません。
秘訣は、MySQL の形式を変更することではなく (とにかく文字列として保存されません)、クエリを実行するときに必要な形式を指定することです。
これは、次のようなものを使用して実現できます。
SELECT date_format(mydatefield,'%m/%d/%Y') as mydatefield FROM mytable
これに関する公式の MySQL マニュアルはこちらです: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format
ところで、トピックとは関係ありませんが、言及する必要があると思います: mm/dd/yyyy を日付形式として使用しないことを常にお勧めします。米国外の誰かを混乱させるでしょう。事実上、世界の他のすべての国では通常、dd/mm/yyyy が使用されます。しかし、これらの形式はどちらもあいまいです。「2010 年 12 月 5 日」と言うとき、どの日付を意味しますか? おそらく私とは別のものですが、あなたが意図した方向を実際に知ることは不可能です.
表示目的で日付を使用する場合は、あいまいさを取り除くため、常に月を単語または略語として表示します。入力目的では、混乱を避けるためにカレンダー コントロールを使用します。
できないと思います。 MySQL の日付形式の変更を参照してください。
date_format
呼び出されたシステム変数がありdatetime_format
、有望に見えますが、それらを設定しようとするとエラーが発生し、ドキュメントにはそれらが「未使用」であると書かれています。
私は WAMP インストールを使用し、通常は単純に列INT(10)
を作成してから、次のように日付を保存します。
UPDATE `test` SET `dateandtime` = DATE_FORMAT( NOW(), '%y%m%d%H%i' ) WHERE `id` =1234;
これは2013-11-22 12:45:09
のような数値として保存され1322111245
ます。はい、「不適切」と見なされるかもしれませんが、気にしません。それは機能し、クライアント上で好きなように簡単にソートしてフォーマットできます。
他の日付関数を実行する予定がある場合、これは明らかに推奨されませんが、私にとっては、通常、レコードの最終更新を知り、結果セットを日付で並べ替えたいだけです。