0

MySQL から返される値について簡単な質問があります。

テーブルの 1 つに、dateデータ型が割り当てられた列があります。情報がデータベースに挿入されるcurdate()と、適切な日付を挿入するために自動的に実行されます。

つまり、MySQL は値が日付であることを認識します。その値を取得してユーザーに提示するphpスクリプトがあります。さて、その値はphpの観点から文字列ですか?

私がやりたいことは、必要に応じて、プルされた値を使用して新しいテーブルに挿入することです (例: 10/1/12 を php でプルしてから新しいテーブルに挿入します)。その場合、その値を新しいテーブルのデータ型の列に単純に入れることはできますdateか? または、MySQL はそれを日付として認識しませんか?

どんな洞察も高く評価されます。

4

4 に答える 4

0

MySQL にはネイティブの日付の構文がありません。代わりに、デフォルトの日付形式を使用して、文字列との間で日付を自動的にキャストします。

mysql> SELECT @@date_format, @@datetime_format;
+---------------+-------------------+
| @@date_format | @@datetime_format |
+---------------+-------------------+
| %Y-%m-%d      | %Y-%m-%d %H:%i:%s |
+---------------+-------------------+
1 row in set (0.00 sec)

... ここで、フォーマット コードは、DATE_FORMAT()関数のドキュメントで説明されているものです。たとえば、次のようにキャストをいつでも自分で制御できます。

そうは言っても、あまりにも多くのツールが工場出荷時の値に依存し@@date_format@@datetime_format保持しているため、システム全体で工場出荷時の値を変更すると、多くのものが壊れる可能性があります。

PHP 拡張機能が日付列をDateTimeオブジェクトにキャストすることは可能ですが (どちらを使用しているかはわかりません)、組み込みのものは現在それを行っていません。これは残念です。

于 2012-10-02T07:54:05.150 に答える
0

このメソッドを使用できます DateTime::createFromFormat

http://www.php.net/manual/en/datetime.createfromformat.php

于 2012-10-01T21:22:54.617 に答える
0

MySQL は、文字列を日付にキャストできるほどスマートです。文字列は、ほぼすべての標準形式にすることができ、適切に変換されます。

編集:申し訳ありませんが、私は間違っていました。

これを処理するには、PHP または MySQL の日付解析関数を使用できます。PHP の場合:

date("Y-m-d", strtotime($row['myDateField']));

strtotime が解釈できる有効な日付文字列のリストは次のとおりです: http://www.php.net/manual/en/datetime.formats.date.php

于 2012-10-01T21:22:12.400 に答える