2017-01-11 83 views
0

我正在通过XAMPP运行本地MariaDB服务器。我有〜1000 LOC,看起来像下面这样:如何更改MySQL日期格式?

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

格式是静态的,点击这里:HTTP:// stackoverflow.com/questions/4052862/how-to-change-mysql-date-format-for-database –

回答

1

您可以将它转换为一个小动作。

1)创建一个temp。表像这样,其中的日期存储为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各地各datestring这样的:

insert into jobs values(781,STR_TO_DATE('13-01-2005', "%d-%m-%Y"),10006,1,2.5,1,4.00);