ソリューション:
CREATE SEQUENCE TRUCK_SEQUENCE MINVALUE 0 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 0 CACHE 20 NOORDER NOCYCLE;
SELECT 'NEXT_CAR',
TO_CHAR(TO_DATE('08.08.2016 10:00', 'dd.mm.yyyy hh24:mi:ss')+1/24/60*30*TRUCK_SEQUENCE.NEXTVAL, 'dd.mm.yyyy hh24:mi:ss')
FROM DUAL;
短所:あなたがシーケンサーから引くと、その時間枠が失われます。これはつまり、たとえばテーブル3から11:00に車3をロードせず、車4(別のインサート)をロードしたい場合は11:30になります。シーケンサーの実際の機能です。テーブルから最大の時間を使って
ソリューション:
WITH LOAD_TIMES AS
(SELECT 'TRUCK1' AS CAR,
TO_DATE('08.08.2016 10:00', 'dd.mm.yyyy hh24:mi:ss') AS TIME
FROM DUAL
)
SELECT 'TRUCK2',
TO_CHAR(MAX(TIME)+1/24/60*30, 'dd.mm.yyyy hh24:mi:ss')
FROM LOAD_TIMES;
短所:あなたは、最大使用時間を見つけるために、テーブル全体を一つ一つ時間を照会し、それをインクリメントします。すべてのソリューションに共通の
:
--This is basic offset (date to start with)
TO_DATE('08.08.2016 10:00', 'dd.mm.yyyy hh24:mi:ss')
へようこそSOの最初の時間です。ここであなたは[ask]について何かを見つけ、[mcve]を構築する方法はありません。 – Aleksej