Метка времени запроса Django, кажется, ведет себя по-другому - PullRequest
0 голосов
/ 06 ноября 2019

Я хотел бы запросить некоторые данные из базы данных postgres, где мы храним некоторые значения. Однако, кажется, что когда я делаю это в Django со скриптом на python, который вызывается из views.py, данные смещаются на один час.

Пример:

Запрос изфайл сценария:

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 учитывает некоторый часовой пояс, но как я могу получить один и тот же результат, если установить дату и время в обоих случаях одинаково?

1 Ответ

0 голосов
/ 12 ноября 2019

Итак, через некоторое время я понял, что в global_settings.py параметр TIME_ZONE установлен в Стокгольм / Европа, когда я изменил его на UTC, тот же запрос дал тот же результат.

...