Как отформатировать дату и время для условия MySQL WHERE - PullRequest
0 голосов
/ 30 апреля 2019

Я получаю ошибку по моему запросу. Ошибка

mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '18:07:41' at line 1

Прежде всего, я не понимаю, к чему относится строка 1, поскольку мой запрос не находится на строке 1 в моем скрипте Python.

Мой код выглядит так

conn = mysql.connector.connect(
    host='HOST.mysql.pythonanywhere-services.com',
    user='USER',
    passwd='PASSWORD',
    db='DBNAME')

    c = conn.cursor()

    value = datetime.now() - timedelta(5)

    value = value.strftime('%Y-%m-%d %H:%M:%S')

    c.execute("SELECT temp, humidity, rain, datetime FROM data WHERE datetime >= (%s);" % (value))

    rows = c.fetchall()

И дата / время вводятся в базу данных в другом скрипте как

str(datetime.datetime.now())

Это даже лучший способ сделать это? Я просто хочу отметку времени, когда значение было введено в базу данных.

Я проверил, используя другой параметр в запросе, например значение temp

value = 10

        c.execute("SELECT temp, humidity, rain, datetime FROM data WHERE temp >= (%s);" % (value))

Так что я думаю, что это должно быть связано с тем, как я форматирую дату и время, однако я не уверен, как это проверить.

Спасибо за любую помощь

1 Ответ

0 голосов
/ 30 апреля 2019

Попробуй вот так

"select * FROM table WHERE datetime => '{}' ". format(value) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...