0

私はこれに関する情報を見つけることができないようです..

SQL DATE フィールドに正しくインポートされるように、文字列を日付に変換する必要があります。12/25/2012DBにインポートすると、 のように表示され0000-00-00ます。

これを行う適切な方法は何ですか?

リンクと参考文献は大歓迎です。

4

3 に答える 3

4

MySQL は、この形式の日付を受け入れYYYY-MM-DDます。日付形式12/25/20122012-12-25変更するか、正しい形式に一致するように変更します。

編集 独自の形式を引き続き使用したい場合は、これを試してください

list($d,$m,$y) = explode("/", "12/25/2012"); //replace 12/25/2012 with your date
$hyphenDate = $y . '-' . $m . '-' . $d;
echo  $hyphenDate;
于 2012-11-17T08:29:27.630 に答える
2

@Raviが彼の回答で指摘したように、MySQL は形式の日付を受け入れますYYYY-MM-DD11.1.5より引用。日付と時刻のタイプ1 :

MySQL はいくつかの形式で値を解釈しようとしますが、日付部分は常に年月日の順序で指定する必要があります

このために、2つの関数を使用してフォーマットできます。str_todate()

str_to_date('12/25/2012', '%m/%d/%Y);

SQL フィドルのデモ

このようにして、これらの入力文字列はデータベースに日付オブジェクトとして (特定の日付形式なしで) 保存されます。後で、これらの日付を特定の形式で出力したい場合は、3を使用して形式を設定できます。何かのようなもの:DATE_FORMAT

SELECT DATE_FORMAT(datefield, '%Y-%m-%d') FROM Test;
--2012-12-25

1, 2, 3:あなたが求めたリンクと参照。

于 2012-11-17T08:33:19.403 に答える
0

クラスDateTimeを使用します。例:

$SomeDate = new DateTime();
echo $SomeDate->format( 'Y-m-d H:i:s' );  //Must be MySQL compatible (YYYY-MM-DD)

$ThisDate = new DateTime( date( 'Y-m-d H:i:s' ) );
echo $ThisDate->format( 'Y-m-d H:i:s' );  //Must be MySQL compatible (YYYY-MM-DD)
于 2012-11-17T08:35:00.917 に答える