我试图过滤DateTimeField与日期的比较.我的意思是:
MyObject.objects.filter(datetime_attr=datetime.date(2009,8,22))
Run Code Online (Sandbox Code Playgroud)
我得到一个空的查询集列表作为答案因为(我认为)我不考虑时间,但我想"随时".
Django有这么简单的方法吗?
我有时间在日期时间设置,但事实并非如此00:00.
我正在尝试设置一个数据库,用于存储用户指定的每日警报时间.例如,如果在每天上午7:00到7:30之间满足某些标准,则用户想要接收警报.在尝试实现这一点时,我需要适应夏令时.这是我尝试的解决方案:
CONVERT_TZ(UTC_TIME(), 'UTC', userInfo.tz).问题1.根据我的理解,指定时区名称(如美国/东部)应考虑夏令时.例如,CONVERT_TZ('00:00:00', 'UTC', 'US/EASTERN')1月1 日的呼叫应该会产生'19:00:00',但是在7月1日,呼叫应该产生'20:00:00'.我对么?
问题2.如果Q1正确,我是否需要不断更新MySQL的时区表以保持时区UTC偏移最新?
问题3. MySQL文档中给出的示例在我的服务器上运行时SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')产生" NULL".这可能是由于没有设置时区表造成的吗?
我怎么检查这个?
有人可以向我解释为什么以下过滤器在月和日级别无法正常工作吗?按年过滤似乎有效,但不是其他两个.
>>> clicks.count()
36
>>> date = clicks[0].created
>>> date.month
2
>>> date.year
2014
>>> date.day
1
>>> clicks.filter(created__month=2)
[]
>>> clicks.filter(created__month=02)
[]
>>> clicks.filter(created__month='02')
[]
>>> clicks.filter(created__month='2')
[]
>>> clicks.filter(created__month=date.month)
[]
>>> clicks.filter(created__day=date.day)
[]
Run Code Online (Sandbox Code Playgroud)
一个快速更新,以证明我在创建和处理查询集之前获得了相同的行为:
>>> clicks = PreviewClick.objects.filter(created__month = 2)
>>> clicks.count()
0
>>> clicks = PreviewClick.objects.filter(created__month = 02)
>>> clicks.count()
0
>>> clicks = PreviewClick.objects.filter(created__month = '02')
>>> clicks.count()
0
>>> clicks = PreviewClick.objects.filter(created__month = '2')
>>> clicks.count()
0
Run Code Online (Sandbox Code Playgroud)
这里有更多值得深思的东西:
>>> clicks = PreviewClick.objects.all()
>>> counter = …Run Code Online (Sandbox Code Playgroud)