【发布时间】:2014-08-07 16:35:41
【问题描述】:
我的头要撞到墙上了。
考虑以下代码:
def get_cardnumbers_from_timestamp(request, since_time=0):
if request.method == 'GET':
if request.user:
if not request.user.is_authenticated():
logger.debug('User is not authorized')
return auth_required('Authentication required')
logger.debug('User has been authorized')
user = request.user
logger.debug('since_time: {0}'.format(since_time))
if int(since_time) != 0:
utc_time = time.mktime(time.gmtime(int(since_time)))
else:
utc_time = 0
logger.debug('since_time UTC: {0}'.format(utc_time))
devices_data = dict()
from django.db import connection
cursor = connection.cursor()
query = 'SELECT c.name,c.id,d.locale,d.card_number,d.dev_uniqid,d.id FROM device_channel dc JOIN channels c on dc.channel_id = c.id JOIN devices d on dc.device_id=d.id WHERE d.card_number IS NOT NULL AND updated >= FROM_UNIXTIME({time}) ORDER BY d.id'.format(time=int(utc_time))
logger.debug(query)
cursor.execute(query)
answers = cursor.fetchall()
cursor.close()
logger.debug(answers)
当使用since_time 明确设置为0 或根本未设置对 MySQL 触发时,形成的查询返回大约 250 行,Django 也是如此。
但是,当我将时间戳设置为某个值时,无论哪个相同格式的查询(我记录然后从日志中复制粘贴)在 MySQL 控制台中返回 5 行都无关紧要。 Django 给了我一个高达0 的结果集。
我可能忽略了一些非常明显的事情,但我已经尝试了很多方法,但都无济于事。
欢迎提出任何想法。
【问题讨论】:
-
你是否在 mysql 控制台中运行过相同的查询?
-
@dhana:这正是我的问题所说的 - MySQL 给了我结果,Django 没有:)
-
我有同样的问题 :(。我的查询在 SQL gui 中工作,但完全相同的查询在 django 原始查询中不起作用
标签: sql django mysql-python