我有delivery slots
有一个from
列(datetime
)。如何获得时间间隔之间的行
每天以1小时至1小时30分钟的时间间隔存储发货槽。 即上午03时00分,上午04点三十,上午6点,上午7:30,上午9:00 - 10:30等等
id | from
------+---------------------
1 | 2016-01-01 03:00:00
2 | 2016-01-01 04:30:00
3 | 2016-01-01 06:00:00
4 | 2016-01-01 07:30:00
5 | 2016-01-01 09:00:00
6 | 2016-01-01 10:30:00
7 | 2016-01-01 12:00:00
8 | 2016-01-02 03:00:00
9 | 2016-01-02 04:30:00
10 | 2016-01-02 06:00:00
11 | 2016-01-02 07:30:00
12 | 2016-01-02 09:00:00
13 | 2016-01-02 10:30:00
14 | 2016-01-02 12:00:00
我试图让上午03时00分的时间之间的所有delivery_slots
- 4:30。 Ive得到了迄今为止以下:
SELECT * FROM delivery_slots WHERE EXTRACT(HOUR FROM delivery_slots.from) >= 3 AND EXTRACT(MINUTE FROM delivery_slots.from) >= 0 AND EXTRACT(HOUR FROM delivery_slots.from) <= 4 AND EXTRACT(MINUTE FROM delivery_slots.from) <= 30;
其中还挺作品。有点儿,因为它只是返回交货插槽,其分钟为00
。因为最后where
条件
那(EXTRACT(MINUTE FROM delivery_slots.from) <= 30
)
为了给你一个想法,什么我试图想到:
id | from
-------+---------------------
1 | 2016-01-01 03:00:00
2 | 2016-01-01 04:30:00
8 | 2016-01-02 03:00:00
9 | 2016-01-02 04:30:00
15 | 2016-01-03 03:00:00
16 | 2016-01-03 04:30:00
etc...
有没有一种更好的方式去这件事吗?
'因为它只返回分钟为00的交付插槽......我刚刚在本地使用您的数据在Postgres上进行了测试,并且它返回了您想要的数据。 –