有幾家餐館(說)在我們的數據庫這多個插槽(比如2)插槽打開:分區PostgreSQL的查詢給出模棱兩可的結果
- 插槽1:上午11時至下午1點30分
- 插槽2:下午07:00至晚上9:00。
我想根據當前時間選擇餐廳打開時的正確位置。例如,如果當前時間是06:15 PM,則查詢應當返回時隙2,如果當前時間是上午09:00,則返回時隙1,如果是晚上10:00,則返回時隙1。因此,下一個適當的位置應該到來。
的餐館定時存儲在dish_timings_delivery
表列如下所示: 我的查詢:
SELECT * from (
SELECT *,row_number() over (partition by id) as x from (
SELECT id,day,start_time,end_time,slot from dish_timings_delivery where id in
(101999001247,101999001225,10199900100,101999001223) order by case
when current_time + interval '5 hours 30 minutes' <= end_time then 1
else 2
end
) as foo) as pp where x < 2
的問題是,對於一個dish_id
(比如101999001247
)查詢返回正確的結果,但對於多個dish_ids
(比如101999001247, 101999001225, 10199900100, 101999001223
),如上面的查詢結果是不正確的。對於一些餐館老虎機來說是錯誤的。
通過錯了我的意思是這樣的:
注意:CURRENT_TIME的價值 - 時間間隔「1小時30分」是12時26分34秒在張貼時間。
它應該給插槽1,但給人插槽2對一些菜IDS
對於失敗的案例,表格中的數據是什麼,您得到的結果是什麼以及您期望的結果是什麼? – jmarkmurphy
@jmarkmurphy plz檢查新的更新。 –