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,
因为我只需时间。 |