插入日期时出错 - 日期值不正确:

时间:2012-07-25 00:20:37

标签: mysql sql

我有一个名为today的列,类型为DATE

当我尝试以'07-25-2012'格式添加日期时,出现以下错误:

  

无法运行查询:日期值不正确:列

的'07 -25-2012'

7 个答案:

答案 0 :(得分:26)

由于MySql在日期类型列中接受y-m-d格式的日期,您需要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; 

答案 1 :(得分:2)

一般来说,mysql使用这种日期格式'Y-m-d H:i:s'

答案 2 :(得分:1)

您需要将日期转换为YYYY-MM-DD,以便使用默认配置将其作为MySQL日期插入。

这样做的一种方法是STR_TO_DATE()

insert into your_table (...)
values (...,str_to_date('07-25-2012','%m-%d-%Y'),...);

答案 3 :(得分:1)

这是date format

  

DATE类型用于具有日期部分但没有时间部分的值。   MySQL以'YYYY-MM-DD'格式检索并显示DATE值。该   支持的范围是'1000-01-01'到'9999-12-31'。

当MySQL格式为'2012-07-25'时,为什么要插入'07 -25-2012'格式?实际上,如果sql_modetraditional/strict mode,则会收到此错误,否则只会输入以下警告:1265 - Data truncated for column 'col1' at row 1

答案 4 :(得分:0)

您需要使用YYYY-MM-DD格式在mysql中插入日期

答案 5 :(得分:0)

创建表时,可以将“ DATE”用作数据类型。这样可以避免上述错误。 例如:

CREATE TABLE Employee (birth_date DATE);
INSERT INTO Employee VALUES('1967-11-17');

答案 6 :(得分:0)

造成此错误的原因不同。我尝试插入日期而不使用引号,但收到一个奇怪的错误,告诉我我尝试插入2003年的日期。

My error message:

尽管我已经在使用YYYY-MM-DD格式,但是我忘了在日期前后加上引号。即使它是日期而不是字符串,但仍需要使用引号。