Python 是的,计数匹配。但我该如何在Django这边解决这个问题呢?我已将my settings.py中的时区更改为我的本地时区。“但我如何在Django方面解决此问题?”-在任何客户端中,您都可以通过始终在用于查询的任何日期时间文本中指定时区来避免其时区。谢谢!
Python 是的,计数匹配。但我该如何在Django这边解决这个问题呢?我已将my settings.py中的时区更改为我的本地时区。“但我如何在Django方面解决此问题?”-在任何客户端中,您都可以通过始终在用于查询的任何日期时间文本中指定时区来避免其时区。谢谢!,python,sql,django,postgresql,count,Python,Sql,Django,Postgresql,Count,是的,计数匹配。但我该如何在Django这边解决这个问题呢?我已将my settings.py中的时区更改为我的本地时区。“但我如何在Django方面解决此问题?”-在任何客户端中,您都可以通过始终在用于查询的任何日期时间文本中指定时区来避免其时区。谢谢!我能够在时区“EST”使用使其正常工作 WITH calendar AS ( SELECT d FROM generate_series(date_trunc('day', CURRENT_DATE - INTERVAL '6
是的,计数匹配。但我该如何在Django这边解决这个问题呢?我已将my settings.py中的
时区更改为我的本地时区。“但我如何在Django方面解决此问题?”-在任何客户端中,您都可以通过始终在用于查询的任何日期时间文本中指定时区来避免其时区。谢谢!我能够在时区“EST”使用使其正常工作
WITH calendar AS
( SELECT d
FROM generate_series(date_trunc('day', CURRENT_DATE - INTERVAL '6 day'), CURRENT_DATE, '1 day'::interval) d)
SELECT n.device_name AS dev_name,
c.d::date AS dev_date,
COUNT(mc.id)
FROM
(SELECT DISTINCT device_name
FROM machine_counter) n
CROSS JOIN calendar c
LEFT JOIN machine_counter mc ON mc.device_datetime >= c.d + INTERVAL '7 hour'
AND mc.device_datetime < c.d + INTERVAL '1 day 7 hour'
AND n.device_name = mc.device_name
GROUP BY n.device_name,
c.d
ORDER BY c.d,
n.device_name;
def getMachineCount(request):
cursor = connection.cursor()
cursor.execute(
'''
WITH calendar AS
( SELECT d
FROM generate_series(date_trunc('day', CURRENT_DATE - INTERVAL '6 day'), CURRENT_DATE, '1 day'::interval) d)
SELECT n.device_name AS dev_name,
c.d::date AS dev_date,
COUNT(mc.id)
FROM
(SELECT DISTINCT device_name
FROM machine_counter) n
CROSS JOIN calendar c
LEFT JOIN machine_counter mc ON mc.device_datetime >= c.d + INTERVAL '7 hour'
AND mc.device_datetime < c.d + INTERVAL '1 day 7 hour'
AND n.device_name = mc.device_name
GROUP BY n.device_name,
c.d
ORDER BY c.d,
n.device_name;
'''
)
records = cursor.fetchall()
col_list = [desc[0] for desc in cursor.description]
print(records)
result = bindQueryColumnDescription(records, col_list)
return HttpResponse(json.dumps(result, default=dateConverter))