我有一个名为today
的列,类型为DATE
。
当我尝试以'07-25-2012'
格式添加日期时,出现以下错误:
无法运行查询:日期值不正确:列
的'07 -25-2012'
答案 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_mode为traditional/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)