2012-03-28 26 views
40

私は別の形式で日付を照会する方法を知りたかったのですが、昨日質問しました。しかし、今私はこのメソッドを使用して挿入をしようとしています(下を参照)しかし、私はそれを動作させることはできません。私はマニュアルをチェックしましたが、初心者ではありません!MySQLの日付形式 - 難易度日付を挿入する

INSERT INTO custorder VALUES ('Kevin','yes'), STR_TO_DATE('1-01-2012', '%d-%m-%Y'); 
+2

間違った一重引用符の配置 ' – Baba

+1

PHPとは関係ありません。 – Flukey

+1

は私がPHPタグを入れたので-1投票でした...ごめんなさい。それは私がPHPの変数を使用しているためだった..考えていなかった! – Phil

答えて

89

単一引用符で日付を入れて、最後に('yes'後)括弧を移動:

INSERT INTO custorder 
    VALUES ('Kevin', 'yes' , STR_TO_DATE('1-01-2012', '%d-%m-%Y')) ; 
         ^         ^
---parenthesis removed--|    and added here ------| 

しかし、あなたは常にだけ(を使用し、STR_TO_DATE()機能なしの日付を使用することができますYmd)'20120101'または'2012-01-01'フォーマット。 MySQLのドキュメントを確認してください:あなたは正しく文字列をカプセル化されていませんでしたようDate and Time Literals

INSERT INTO custorder 
    VALUES ('Kevin', 'yes', '2012-01-01') ; 
+0

日時リテラルの章を教えていただきありがとうございます。今私はMySQLがそれを認識する日付フィールドに20120101または "20120101"を挿入するときを理解しています。私はそれがPHPの魔法か不具合だと思った。 – Marecky

9

が見えます。これを試してみてください:

INSERT INTO custorder VALUES ('Kevin','yes'), STR_TO_DATE('1-01-2012', '%d-%m-%Y'); 

また、次の操作を行うことができます

INSERT INTO custorder VALUES ('Kevin','yes'), '2012-01-01'; 

私は上記のSQLは、しかし、有効であり、そしてあなたに日付部分を移動することと確信していませんよ角かっこ。あなたが得ている正確なエラーを提供できるのであれば、私はその問題をより直接的に助けることができるかもしれません。

4

MySQLのINSERTクエリの日付形式はYYYY-MM-DD

例です。

INSERT INTO table_name (date_column) VALUE ('YYYY-MM-DD'); 
0

アドオン私はこの問題に出くわしたので、以前の回答に:

あなたが本当にしたい場合はDATE列に24-May-2005のような文字を挿入すると、次のようなことができます。

INSERT INTO someTable(Empid,Date_Joined) 
VALUES 
    ('S710',STR_TO_DATE('24-May-2005', '%d-%M-%Y')); 

Mayの場合(つまり、月の場合)、フォーマットは%Mである必要があります。

:私はこれを最新のMySQLバージョン8.0で試してみました。