MySQL插入日期

时间:2016-02-13 14:54:09

标签: mysql date date-format

这是我的MySQL代码:

UPDATE student SET birthDate = STR_TO_DATE(birthDate, '%M %d,%Y');

INSERT INTO student (`birthDate`) VALUES ('June 10,1997');

但它显示错误:

  

错误代码1292,SQL状态22001:数据截断:日期不正确   价值:' 1997年6月10日'专栏' birthDate'在第1行

4 个答案:

答案 0 :(得分:1)

如果要在列中插入日期,请​​使用正确的日期语法:

INSERT INTO student (`birthDate`)
   VALUES ('1997-06-10');

答案 1 :(得分:1)

SQL使用非常具体的日期格式,即' YYYY-MM-DD'。

您可以将其作为文本插入格式(例如,不需要STR_TO_DATE)。

示例:' 1997-06-10'

答案 2 :(得分:0)

INSERT INTO student SET birthDate='1997-06-10'

答案 3 :(得分:0)

STR_TO_DATE()根据提供的字符串和字符串格式返回正确格式化的日期。

以下INSERT可以正常工作

INSERT INTO student (`birthDate`) VALUES (STR_TO_DATE('June 10,1997', '%M %d,%Y'));

因为SELECT STR_TO_DATE('June 10,1997', '%M %d,%Y')返回1997-06-10

如果birthDate字段是日期字段,则您提供的更新查询将不起作用,因为它不可能已经包含md,Y格式的日期(您正在就地更新列值)

如果您在这种格式的varchar列(例如birthDate_mdY)中有一列日期,则可以将其转换为这样的日期字段

UPDATE student SET birthDate = STR_TO_DATE(birthDate_mdY, '%M %d,%Y')