【问题标题】:Django query timestamp seems to behave differentlyDjango 查询时间戳似乎表现不同
【发布时间】:2020-03-03 01:16:39
【问题描述】:

我想从我们存储一些值的 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 中的查询考虑了一些时区,但是在两种情况下将日期和时间设置为完全相同时,如何获得相同的结果?

【问题讨论】:

    标签: django postgresql datetime filter utc


    【解决方案1】:

    过了一会儿,我意识到在 global_settings.py 中,参数 TIME_ZONE 设置为 Stockholm/Europe,当我将其更改为 UTC 时,相同的查询给出了相同的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多