- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
无法在 Trunc 函数中更改时区。它总是从 settings.py 中获取时区
import pytz
ind = pytz.timezone('Asia/Calcutta')
查询:
queryset = Order.objects.annotate(date=TruncDate('created_at', tzinfo=ind)).values('date')
通过 queryset.query
检查 sql 查询时
SELECT DATE(CONVERT_TZ(`nm_order`.`created_at`, 'UTC', UTC)) AS `date` FROM `nm_order`
引用:Trunc in Django
但是对于 Extract , 它开始工作了
ORM:
queryset = Order.objects.annotate(date=ExtractDay('created_at',tzinfo=ind)).values('date')
查询:
SELECT EXTRACT(DAY FROM CONVERT_TZ(`nm_order`.`created_at`, 'UTC', Asia/Calcutta)) AS `date` FROM `nm_order`
我是否遗漏了 Trunc
中的某些内容?
我的 settings.py
中的时区设置
IME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
最佳答案
您需要使用 TruncDay()
而不是 TruncDate
。在文档该部分正下方的用法示例中,您将看到两者之间的区别。
TruncDate
不采用时区选项 - 它使用当前时区并为您提供该时区的日期。
我认为两者之间的区别在于 TruncDate
返回一个 DateField
,根据定义它不能识别时区。另一方面,TruncDay
返回一个 DateTimeField
(时间部分设置为 00:00:00),它可以识别时区。
关于python - TruncDate 时区参数在 Django 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46931256/
我正在使用 Django 2.2 我正在使用 Django 查询过滤记录 from datetime import datetime from django.db.models.functions i
我正在使用 Django 2.2 我正在使用 Django 查询过滤记录 from datetime import datetime from django.db.models.functions i
无法在 Trunc 函数中更改时区。它总是从 settings.py 中获取时区 import pytz ind = pytz.timezone('Asia/Calcutta') 查询: quer
我是一名优秀的程序员,十分优秀!