我有一个名为availableTimeslot
的数据库表,其中包含字段pk
,startDate
,endDate
,例如
PK startDate endDate
1. 2017-03-07 09:00:00 2017-03-07 18:00:00
2. 2017-03-07 18:00:00 2017-03-07 21:00:00
3. 2017-03-08 09:00:00 2017-03-08 18:00:00
从09:00:00到18:00:00开始的记录表明它是早晨时段,而18:00:00到23:00:00表示它是下午时段
存储可用的时间段日期(例如2017-03-06,2017-03-08),供客户选择一个。
我可以使用一个查询从订单日期后的第二天开始准确获取10个可用时段日期吗?
e.g。如果我在2016-03-07订购产品,则查询返回
2017-03-08 09:00:00
2017-03-08 18:00:00
2017-03-09 09:00:00
2017-03-09 18:00:00
2017-03-10 ...
2017-03-11 ...
2017-03-13 ...
因为12是公众假期而不在表格中。
简而言之,它会返回10个日期(每天有5天,上午和下午会议)
备注:可用的时段日期是有序的,但可能不是连续的
答案 0 :(得分:0)
您是否希望单个客户使用5个?
select ts.*
from (select ts.*
from customer c join
timeslots ts
on ts.date > c.orderdate
where c.customerid = v_customerid
order by ts.date asc
) ts
where rownum <= 5
答案 1 :(得分:0)
select available_date
from ( select available_date, row_number() over (order by available_date) as rn
from your_table
where available_date > :order_date
)
where rn <= 5;
:order_date
是绑定变量 - 用户/客户通过界面输入的日期。