という列がtoday
あり、タイプはDATE
です。
形式で日付を追加しようとすると'07-25-2012'
、次のエラーが発生します。
クエリを実行できません: 列の日付値が正しくありません: '07-25-2012'
MySql は日付型列に ymd 形式の日付を受け入れるためSTR_TO_DATE
、次の方法で日付を yyyy-mm-dd 形式に変換して挿入する必要があります。
INSERT INTO table_name(today)
VALUES(STR_TO_DATE('07-25-2012','%m-%d-%y'));
同様に、Mysql 形式以外の別の形式で日付を選択する場合は、DATE_FORMAT
関数を試してください。
SELECT DATE_FORMAT(today, '%m-%d-%y') from table_name;
通常、mysql はこの日付形式「Ymd H:i:s」を使用します。
デフォルト設定を使用して MySQL 日付として挿入するには、日付を YYYY-MM-DD に変換する必要があります。
それを行う1つの方法は次のSTR_TO_DATE()
とおりです。
insert into your_table (...)
values (...,str_to_date('07-25-2012','%m-%d-%Y'),...);
This is the date format:
The DATE type is used for values with a date part but no time part. MySQL retrieves and displays DATE values in 'YYYY-MM-DD' format. The supported range is '1000-01-01' to '9999-12-31'.
Why do you insert '07-25-2012' format when MySQL format is '2012-07-25'?. Actually you get this error if the sql_mode is traditional/strict mode
else it just enters 0000-00-00 and gives a warning: 1265 - Data truncated for column 'col1' at row 1
.
このコードを使用できます。それはうまくいきます。
INSERT INTO table_name(today)
VALUES(STR_TO_DATE('07-25-2012','%m-%d-%Y'));
実際には、日付を文字列として直接保存することはできません。まず、STR_TO_DATE()
関数を使用する適切な形式で文字列を日付に変換する必要があります。これには、2 つの引数が必要です。最初は文字列としての日付で、2 つ目は渡す日付形式です。あなたの最初の引数。