
1 Leigg 2018-10-10 19:53:11 +08:00 via iPhone 怎么查的到呢? 应该存时间戳,查的时候条件随便给,都可以转换成时间戳在库里面查。 |
3 lonelinsky 2018-10-10 20:06:55 +08:00 用 DateTimeField,然后啥问题都解决了,时间切片都可以 https://docs.djangoproject.com/en/2.1/ref/models/fields/#datetimefield |
4 fatelovely 2018-10-10 20:08:35 +08:00 用字符串类型存储时间信息,这不是把一个简单的问题生生复杂化了吗? 如果是固定的查询要求,比如「下午 16 点到凌晨 5 点」,可以通过构造正则表达式,还是可以查的。 如果是动态的查询要求,就算了吧。重新开一个时间戳字段,使用当前的字符串字段初始化一下,是正道。 |
5 zhuyw2006 OP @lonelinsky @fatelovely 我只需要时分秒,使用 TimeField 字段就可以了吧? 查询下午 16 点 到 凌晨 5 点的时候是不是 FSTTIME__gte=160000 FSTTIME__lte=050000 ? |
6 Leigg 2018-10-10 20:59:47 +08:00 via iPhone 不是,就像存一个 int 类型把时间戳存进去就可以了。integerfield |
7 Leigg 2018-10-10 21:01:03 +08:00 via iPhone timefield 我想也是能够解决问题的,只是我用的最多的还是时间戳,什么数据库都可以存。 |
8 zhuyw2006 OP @fatelovely 你好,我现在单独使用字符串字段放时间,当天到凌晨的应该如何查询呢? 我现在这样 Q(FSTTIME__range=(checkPeriodSTime, “ 235959 ”)) & Q(FSTTIME__range=("000000", checkPeriodETime)) 查询不到。 |
10 PythonAnswer 2018-10-11 09:02:25 +08:00 via iPhone 时间戳。自己换算 hms。这样跨日方便。 不跨日可以用 datetime 记得可以单独提取年月日时分秒。 |
11 zhuyw2006 OP @NaVient 我现在已经独立出来了。不过还是不知道怎么查询跨越凌晨的问题,比如:从下午 16 点 到 凌晨 5 点 ( 160000 ~ 050000 ); @PythonAnswer 应该如何查询呢?谢谢 |
12 lonelinsky 2018-10-11 10:10:41 +08:00 @zhuyw2006 如果是用 TimeField 的话用 ` Q(FSTTIME__gte=160000) | Q(FSTTIME__lte=050000) ` 应该是可以的呀 |
13 zhuyw2006 OP @lonelinsky 谢谢,安装您的方法改成 DateTimeField 字段就可以了,不过查询的时候要加 FSTTIME__time__gte, 因为我只需时间。 |