我正在通过XAMPP运行本地MariaDB服务器。我有~1000 LOC,看起来如下:
insert into jobs values(781,'13-01-2005',10006,1,2.5,1,4.00);
当我使用欧洲日期格式时,我不断收到错误:
Data truncation: Incorrect date value: '13-01-2005'
是否有可能修改日期格式,数据库正在使用它以便接受'DD-MM-YYYY'作为输入?
提前致谢
答案 0 :(得分:1)
你可以用一点技巧转换它。
1)创建一个临时文件。像这样的表,其中日期存储为varchar
CREATE TABLE `dateconv` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`datestr` varchar(32) DEFAULT NULL,
`i1` int(11) DEFAULT NULL,
`i2` int(11) DEFAULT NULL,
`i3` double DEFAULT NULL,
`i4` int(11) DEFAULT NULL,
`i5` double DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=782 DEFAULT CHARSET=utf8;
2)插入所有数据
insert into dateconv values(781,'13-01-2005',10006,1,2.5,1,4.00);
...
insert into dateconv values(999,'13-01-2005',10006,1,2.5,1,4.00);
3)您可以在目的地表中选择或插入数据
显示:
SELECT
id, STR_TO_DATE(datestr, "%d-%m-%Y"),
i1,i2,i3,i4,i5
FROM dateconv;
插入:
INSERT INTO jobs
SELECT
id, STR_TO_DATE(datestr, "%d-%m-%Y"),
i1,i2,i3,i4,i5
FROM dateconv;
替代方式
围绕每个日期字符串转换函数 STR_TO_DATE ,如下所示:
insert into jobs values(781,STR_TO_DATE('13-01-2005', "%d-%m-%Y"),10006,1,2.5,1,4.00);