У меня есть база данных на локальном компьютере, она основана на SQL сервере. Я переношу его в базу данных MySQL, размещенную в Интернете, используя инструмент миграции в MySQL верстаке. Я могу перенести базу данных, однако исходная БД использует строку для хранения даты в дд / мм / гггг (точно не знаю почему, я ее не записал), что означает, что цель заканчивается столбцом типа строка / varchar, а не date.
Я попытался преобразовать в разделе сопоставления столбцов в мастере миграции, используя STR_TO_DATE (и я также установил тип столбца от varchar до date) ', чтобы получить его по умолчанию для системы YYYY-MM- ДД, а затем отформатируйте обратно в дд / мм / гггг. Мне нужно делать это при переносе, а не при достижении целевой таблицы, так как мне нужно ежедневно использовать эти даты для определения новых данных, которые затем будут перемещены в более постоянную таблицу.
I Есть несколько таблиц, чтобы сделать это, но вот пример кода для одной таблицы:
CREATE TABLE IF NOT EXISTS `silverfe_extraction`.`BatchSummary` (
`NetWeight` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL,
`BatchID` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL,
`DrumNum` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL,
`BeeKeeperID` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL,
`DrumDate` DATE NULL,
`mafID` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL)
$$
SELECT DATE_FORMAT(STR_TO_DATE('DrumDate', '%d/%m/%Y'), '%d/%m/%Y') as 'DrumDateFormat' from 'silverfe_extraction'.'BatchSummary';
, что приводит к:
Оператор Execute:
CREATE TABLE IF NOT EXISTS `silverfe_extraction`.`BatchSummary` (
`NetWeight` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL,
`BatchID` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL,
`DrumNum` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL,
`BeeKeeperID` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL,
`DrumDate` DATE NULL,
`mafID` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL)
$$
SELECT DATE_FORMAT(STR_TO_DATE('DrumDate', '%d/%m/%Y'), '%d/%m/%Y') AS 'DrumDateFormat' FROM 'silverfe_extraction'.'BatchSummary'
ПРЕДУПРЕЖДЕНИЕ: ОШИБКА при выполнении 'CREATE TABLE IF NOT EXISTS `silverfe_extraction`.`BatchSummary` (
`NetWeight` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL,
`BatchID` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL,
`DrumNum` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL,
`BeeKeeperID` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL,
`DrumDate` DATE NULL,
`mafID` VARCHAR(50) CHARACTER SET 'utf8mb4' NULL)
$$
SELECT DATE_FORMAT(STR_TO_DATE('DrumDate', '%d/%m/%Y'), '%d/%m/%Y') as 'DrumDateFormat' from 'silverfe_extraction'.'BatchSummary''
В вашем синтаксисе SQL имеется ОШИБКА; ПРОВЕРЬТЕ руководство, соответствующее вашей MySQL версии сервера для правильного синтаксиса, чтобы использовать около '$$
SELECT DATE_FORMAT(STR_TO_DATE('DrumDate', '%d/%m/%Y'), '%d/%m/%Y') as 'Drum'
в строке 8. SQL Ошибка: 1064
Я использовал разделитель, поскольку он не будет признать, что таблица существовала. Помощь оценена.