2017-01-11 3 views
0

Я запускаю локальный сервер MariaDB через XAMPP. У меня есть ~ 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) Создайте темп. Таблица, как это, где дата хранится в виде 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; 

Alternativ путь

включить функцию, 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); 
Смежные вопросы