2017-02-12 15 views
0
CREATE TABLE orders(
    order_id INTEGER PRIMARY KEY, 
    customer_id INTEGER, 
    order_date DATE, 
    ship_date DATE 
); 

INSERT INTO orders 
VALUES 
(1, 1200, '2013-23-10', '2013-28-10'); 

上記のコードに問題はありますか?あなたは 'YYYY-MM-DD' を使用する必要があるのに対し、あなたは 'YYYY-DD-MM' 形式を使用しているMySQLエラー1292日付の値が正しくありませんか?

答えて

1

、以下を試してみてください。

INSERT INTO orders VALUES (1, 1200, '2013-10-23', '2013-10-28'); 
0

日付形式は'YYYY-MM-DD'です。

23および28は、MM月コンポーネントの有効な値ではありません。

MySQLが返すエラーは、予想される動作です。

MySQLがエラーメッセージを返すようにしたいのであれば、何をしていても間違いはありません。

文の実行を成功させ、orders表に行を追加する場合は、DATE列に有効な日付値を指定します。

リテラル値をMySQLの予想どおりのフォーマットに変更するか、STR_TO_DATE関数を使用して、指定されたフォーマットから文字列を変換してください。

... , '2013-10-23' , ... 

または

... , STR_TO_DATE('2013-23-10','%Y-%d-%m') , ... 
関連する問題