Как акцентировать оператор INSERT, который использует FROM_UNIXTIME - PullRequest
0 голосов
/ 15 февраля 2020

В среде Python у меня есть следующая переменная:

post_time_ms="1581546697000"

, которая является Unix -тилемым временем с миллисекундами.

В моей таблице "create_date_time" определено как столбец datetime.

Я пытаюсь использовать оператор INSERT в форме:

sql_insert_query = "INSERT INTO myTable (id_string, text,
 created_date_time) VALUES ('identifier', 'text_content',
 FROM_UNIXTIME('post_time/1000')"

Я не могу понять, как Я должен это подчеркнуть. Если я запускаю запрос, как показано выше, я получаю:

"Failed to insert record 1292 (22007): Truncated incorrect DECIMAL value: 'post_time/1000'

Я пробовал все варианты одинарных кавычек / без кавычек, о которых я могу думать, но я всегда получаю ошибки.

Для Например, если я сделаю:

sql_insert_query = "INSERT INTO myTable (id_string, text,
 created_date_time) VALUES ('identifier', 'text_content',
 FROM_UNIXTIME('post_time'/1000)"

Я получу:

Failed to insert record 1292 (22007): Truncated incorrect DOUBLE value: 'post_time'

Я зашел так далеко, что попытался преобразовать значение Unix в стиле "1581546697000" следующим образом:

post_time_mysql = datetime.fromtimestamp(int(post_time)/1000)

, а затем:

sql_insert_query = "INSERT INTO myTable (id_string, text,
 created_date_time) VALUES ('identifier', 'text_content',
 'post_time_mysql')"

и даже при выводе

print(post_time_mysql)

"2020-02-14 09:25:28",

Я все еще получаю эту ошибку для вышеуказанного запроса:

Failed to insert record 1292 (22007): Incorrect datetime value: 'post_time_mysql' for column `myDatabase`.`myTable`.`created_date_time` at row 1

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

=========

My Чтобы обойти это, сделайте следующее:

sql_insert_query = "INSERT INTO myTable (id_string, text, created_date_time) VALUES (%s, %s, %s)"

sql_insert_data = (identifier, text_content, post_time_mysql)

cursor.execute(sql_insert_query, sql_insert_data)

Но я все еще не понимаю, как успешно сделать это с помощью одного оператора запроса - если это возможно.

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