Подстрока значения cursor.execute не работает

0

Я пытаюсь загрузить значение +02: 00 с форматом, т.е. -

mysql> select SUBSTR('2016-01-12T14:29:31.000+02:00',24,6);
+02:00                                       

Python:

csv_data = csv.reader(open('aaaa.csv'))
for row in csv_data:
cursor.execute('INSERT INTO time2(col1, \
         EventTimeZone)' \
'VALUES(%s,SUBSTR(\'%s\',24,6))',
         (row[0],row[1]))

как проверить запрос в Python cursor.execute чтобы cursor.execute входящее значение..?

  • 0
    Покажите нам пример данных CSV, пожалуйста.
  • 0
    cat aaaa.csv 45123,2016-01-12T14: 29: 31.000 + 02: 00
Теги:
python-3.x
python-2.7

1 ответ

0
Лучший ответ

Вы не можете вызвать функцию внутри предложения VALUES в INSERT. Но мы можем перефразировать ваш запрос как INSERT INTO... SELECT:

INSERT INTO time2 (col1, EventTimeZone)
SELECT row[0], SUBSTR(row[1], 24, 6)
FROM dual;

Вот мое лучшее предположение относительно того, что будет Python-код:

cursor.execute("INSERT INTO time2 (col1, EventTimeZone) \
    SELECT %s, SUBSTR('%s', 24, 6) \
    FROM dual",
    (row[0], row[1]))
  • 0
    Не уверен, не работает .. mysql_exceptions.ProgrammingError: (1064, «У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса, чтобы использовать около» 2016-01-12T14: 29: 31.000 + 02: 00 '', 24, 6) ОТ двойной 'в строке 1 ")
  • 0
    Возникла проблема с выходом из системы или проблема с данными в row . В любом случае вы можете убедиться, что исходный запрос MySQL, который я вам дал, работает.
Показать ещё 5 комментариев

Ещё вопросы

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