MySQL 插入日期
MySQL inserting date
这是我的MySQL代码:
UPDATE student SET birthDate = STR_TO_DATE(birthDate, '%M %d,%Y');
INSERT INTO student (`birthDate`) VALUES ('June 10,1997');
但是显示错误:
Error code 1292, SQL state 22001: Data truncation: Incorrect date
value: 'June 10,1997' for column 'birthDate' at row 1
如果要在列中插入日期,请使用正确的日期语法:
INSERT INTO student (`birthDate`)
VALUES ('1997-06-10');
INSERT INTO student SET birthDate='1997-06-10'
SQL 使用了一种非常特殊的日期格式,即 'YYYY-MM-DD'.
一旦采用该格式,您就可以将其作为文本插入(例如,不需要 STR_TO_DATE)。
示例:“1997-06-10”
STR_TO_DATE()
returns 根据提供的字符串和字符串格式正确格式化的日期。
下面的 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')
returns1997-06-10
如果 birthDate 字段是日期字段,您提供的更新查询将不起作用,因为它不可能已经包含格式为 m d,Y 的日期(您正在就地更新列值)
如果您在 varchar 列中有一列日期(例如,birthDate_mdY
),那么您可以将它们转换为这样的日期字段
UPDATE student SET birthDate = STR_TO_DATE(birthDate_mdY, '%M %d,%Y')
这是我的MySQL代码:
UPDATE student SET birthDate = STR_TO_DATE(birthDate, '%M %d,%Y');
INSERT INTO student (`birthDate`) VALUES ('June 10,1997');
但是显示错误:
Error code 1292, SQL state 22001: Data truncation: Incorrect date value: 'June 10,1997' for column 'birthDate' at row 1
如果要在列中插入日期,请使用正确的日期语法:
INSERT INTO student (`birthDate`)
VALUES ('1997-06-10');
INSERT INTO student SET birthDate='1997-06-10'
SQL 使用了一种非常特殊的日期格式,即 'YYYY-MM-DD'.
一旦采用该格式,您就可以将其作为文本插入(例如,不需要 STR_TO_DATE)。
示例:“1997-06-10”
STR_TO_DATE()
returns 根据提供的字符串和字符串格式正确格式化的日期。
下面的 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')
returns1997-06-10
如果 birthDate 字段是日期字段,您提供的更新查询将不起作用,因为它不可能已经包含格式为 m d,Y 的日期(您正在就地更新列值)
如果您在 varchar 列中有一列日期(例如,birthDate_mdY
),那么您可以将它们转换为这样的日期字段
UPDATE student SET birthDate = STR_TO_DATE(birthDate_mdY, '%M %d,%Y')