我有以下在 SQLyog 中运行的查询
SELECT * FROM mytable WHERE created > UNIX_TIMESTAMP(STR_TO_DATE('2012-09-09 00:00:00-05:00','%Y-%m-%d %k:%i:%s') - INTERVAL 1 DAY);
如果我在 Python 或 Django 中运行相同的查询,我会收到以下消息:
Warning: Truncated incorrect datetime value: '2012-09-09 00:00:00-05:00'
我已经从 python 打印出查询以确保它与上面的相同。它是相同的(包括结尾的分号)。我怀疑它的时区偏移有问题,但我不知道为什么它会在 SQLyog 中工作。
打印的查询是:
--------------------------------------------------
SELECT * FROM sb_bans WHERE created > UNIX_TIMESTAMP(STR_TO_DATE('2012-09-09 00:00:00-05:00','%Y-%m-%d %H:%i:%s') - INTERVAL 1 DAY);
--------------------------------------------------
用于运行此查询的 Django 代码是:
query = """SELECT * FROM sb_bans WHERE created > UNIX_TIMESTAMP(STR_TO_DATE('2012-09-09 00:00:00-05:00','%Y-%m-%d %H:%i:%s') - INTERVAL 1 DAY);"""
myCursor = connections[system_db].cursor()
results = myCursor.execute(query) # Dies on this statement
resultcount = results.fetchall()
为什么这个查询在我直接运行时有效,但在我的代码执行时却失败了?