Oracle таблицывыражение в статье о присоединении?
Следующий запрос работает как START_TIME_
и DT.LABEL_DATE_TIME_15MIN_INT
выход той же монетой. Я должен признать, что это первый раз, когда я написал такое объединение, приемлемо или есть более эффективный/правильный способ достижения этого?
select
A.ID,
trunc(A.START_TIME,'dd') + (round(to_char(A.START_TIME,'sssss')/900)/96) as START_TIME_,
DT.LABEL_DATE_TIME_15MIN_INT
from TBL_A A
inner join DATE_TIME DT
on ((trunc(A.IN_TIME_START,'dd') + (round(to_char(A.IN_TIME_START,'sssss')/900)/96)) = DT.DATE_TIME_15MIN_INT)
order by A.ID;
Причина подход: A.START_TIME
является TIMESTAMP(6)
GMT-5 DT
таблицы имеет время Клавишу Epoch по Гринвичу с соответствующим «отформатирована этикеткой» скорректированной по Гринвичу-5. Вместо того, чтобы преобразовывать A.START_TIME
в EPOCH, настраивая для часовой пояс и соединяясь с ключом, я выполнил арифметику до A
до правильного 15-минутного интервала, затем присоединился к метке. Я пропустил очень простое решение здесь?