29

という列がtodayあり、タイプはDATEです。

形式で日付を追加しようとすると'07-25-2012'、次のエラーが発生します。

クエリを実行できません: 列の日付値が正しくありません: '07-25-2012'

4

8 に答える 8

39

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; 
于 2012-07-25T00:39:14.913 に答える
4

通常、mysql はこの日付形式「Ymd H:i:s」を使用します。

于 2012-07-25T00:24:16.697 に答える
3

デフォルト設定を使用して MySQL 日付として挿入するには、日付を YYYY-MM-DD に変換する必要があります。

それを行う1つの方法は次のSTR_TO_DATE()とおりです。

insert into your_table (...)
values (...,str_to_date('07-25-2012','%m-%d-%Y'),...);
于 2012-07-25T00:28:10.680 に答える
2

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.

于 2012-07-25T04:40:01.703 に答える
0

このコードを使用できます。それはうまくいきます。

INSERT INTO table_name(today)  
VALUES(STR_TO_DATE('07-25-2012','%m-%d-%Y'));  

実際には、日付を文字列として直接保存することはできません。まず、STR_TO_DATE()関数を使用する適切な形式で文字列を日付に変換する必要があります。これには、2 つの引数が必要です。最初は文字列としての日付で、2 つ目は渡す日付形式です。あなたの最初の引数。

于 2021-09-09T06:40:21.593 に答える