Django 查询时间戳似乎表现不同
Django query timestamp seems to behave differently
我想从我们存储一些值的 postgres 数据库中查询一些数据。然而,当我在 Django 中使用从 views.py 调用的 python 脚本执行此操作时,数据似乎移动了一小时。
示例:
从脚本文件查询:
sensorData = SensorDataAvgFirstTwoMonths.objects.filter(timestamp__gte='2019-11-06 07:50:00',
timestamp__lte='2019-11-06 08:00:00',
machine_id=4,
type_id=25).order_by('timestamp');
print(sensorData)
for d in sensorData:
print(d.timestamp)
print(d.value)
结果如下:
1
现在,如果我直接从终端查询数据,那么我必须转移一个小时才能得到相同的结果(除了查询略有不同)。
2
数据库时间为UTC时间。我希望我不需要在 Django 查询中改变一小时的时间来获得相同的结果。但我想 Django 中的查询考虑了一些时区,但是在两种情况下将日期和时间设置为完全相同时如何获得相同的结果?
所以过了一会儿我意识到在 global_settings.py 中参数 TIME_ZONE 设置为 Stockholm/Europe,当我将其更改为 UTC 时,相同的查询给出了相同的结果。
我想从我们存储一些值的 postgres 数据库中查询一些数据。然而,当我在 Django 中使用从 views.py 调用的 python 脚本执行此操作时,数据似乎移动了一小时。
示例:
从脚本文件查询:
sensorData = SensorDataAvgFirstTwoMonths.objects.filter(timestamp__gte='2019-11-06 07:50:00',
timestamp__lte='2019-11-06 08:00:00',
machine_id=4,
type_id=25).order_by('timestamp');
print(sensorData)
for d in sensorData:
print(d.timestamp)
print(d.value)
结果如下: 1
现在,如果我直接从终端查询数据,那么我必须转移一个小时才能得到相同的结果(除了查询略有不同)。 2
数据库时间为UTC时间。我希望我不需要在 Django 查询中改变一小时的时间来获得相同的结果。但我想 Django 中的查询考虑了一些时区,但是在两种情况下将日期和时间设置为完全相同时如何获得相同的结果?
所以过了一会儿我意识到在 global_settings.py 中参数 TIME_ZONE 设置为 Stockholm/Europe,当我将其更改为 UTC 时,相同的查询给出了相同的结果。