Попытка преобразовать дату из SQL Строка сервера в MySQL ДАТА - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть база данных на локальном компьютере, она основана на 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

Я использовал разделитель, поскольку он не будет признать, что таблица существовала. Помощь оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...