Подстрока значения cursor.execute не работает - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь загрузить значение +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 для subстрока входящего значения ..?

1 Ответ

0 голосов
/ 25 мая 2018

Вы не можете вызвать функцию внутри предложения 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]))
...