Импорт текста в MySQL с другим форматом даты

0

Я хочу сделать перевод "12/26/17 14:30" в txt в "2017-12-26 14:30:00" в MySQL

Я уже пробовал это Импортировать CSV в MySQL с другим форматом date0

Итак, мой код выглядит так

 create_tb_str = r'''DROP TABLE IF EXISTS TABLENAME;
        CREATE TABLE TABLENAME (
        Datetime DATETIME,
        Open float(8,3),            
        High float(8,3),            
        Low float(8,3),             
        Close float(8,3), 
        Volume INT,                           
        PRIMARY KEY (Datetime)
        );'''
insert_tb_str = r''' LOAD DATA LOCAL INFILE 'FILENAME'  
INTO TABLE  TABLENAME  FIELDS TERMINATED BY '\t\t'  
ENCLOSED BY '"' LINES
TERMINATED BY '\n' 
(@time, open, high, low, close, @dummy, volume);
SET Datetime = STR_TO_DATE(@time,'%y-%m-%d %H:%i:%S');   
'''

Однако после того, как я сгенерировал.sql и попытаюсь импортировать в свой db, это результат, который я получаю, терминал не может распознать имя столбца таблицы.

$:~/Downloads/bartest$ mysql -u root -p bar -A < bartest.sql
Enter password: 
ERROR 1193 (HY000) at line 21: Unknown system variable 'Datetime'

Любое предложение?

  • 0
    Вы должны подключиться к конкретной базе данных, а не просто копаться в качестве пользователя root и создавать их в пространстве имен mysql .
  • 1
    Вы используете зарезервированный параметр MySQL в качестве name --- DATETIME не следует использовать в качестве name . Я бы переименовал ваше поле во что-то менее "параметр-иш"
Теги:
stock-data

1 ответ

0

STR_TO_DATE(@time,'%y-%m-%d %H:%i:%S'); возвращает null, поскольку он не соответствует шаблону ввода строки.

Попробуйте что-то вроде этого: STR_TO_DATE('12/26/17 14:30','%m/%d/%y %k:%i');

После извлечения в DATE конвертируйте его в желаемый формат даты.

Чтобы сделать это за один шаг, вы также можете попробовать: "SELECT CONVERT (datetime, '12/26/17 14:30 ');

Надеюсь, это поможет!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню