如何根據DATE列和固定字符串中的日期創建Oracle DATE變量?如何根據單獨的日期和時間組件創建Oracle日期?
即:使用to_date來自mytable.date_col,字符串固定爲「05:30」?
如何根據DATE列和固定字符串中的日期創建Oracle DATE變量?如何根據單獨的日期和時間組件創建Oracle日期?
即:使用to_date來自mytable.date_col,字符串固定爲「05:30」?
可以轉換爲字符串和背部,忽略任何現有的部分時間:
to_date(to_char(date_col, 'YYYY-MM-DD') || ' 05:30:00', 'YYYY-MM-DD HH24:MI:SS')
的to_char()
得到公正的日期部分作爲一個字符串,說'2015-04-15'
。您的固定時間會附加到該字符串中,因此它會變成'2015-04-15 05:30:00'
。然後使用合適的匹配格式模型將其轉換爲日期。
或者使用trunc()
(假設它可能有更晚的時間)將日期返回到午夜,並添加表示該時間的一天的一小部分;其是5.5小時取出的24小時,使5.5/24:
trunc(date_col) + 5.5/24
或與間隔同樣的事情:
trunc(date_col) + interval '0 05:30:00' day to second
所有三個快速演示:
with mytable (date_col) as (
select to_date('2016-04-15 15:16:17', 'YYYY-MM-DD HH24:MI:SS') from dual
)
select to_date(to_char(date_col, 'YYYY-MM-DD') || ' 05:30:00',
'YYYY-MM-DD HH24:MI:SS') as res1,
trunc(date_col) + 5.5/24 as res2,
trunc(date_col) + interval '0 05:30:00' day to second as res3
from mytable;
RES1 RES2 RES3
------------------- ------------------- -------------------
2016-04-15 05:30:00 2016-04-15 05:30:00 2016-04-15 05:30:00
工作感謝! –
我使用了兩個方法在我對你最後一個問題的回答中* 8-)儘管「變量」是什麼意思,只是查詢中使用的生成值或PL/SQL變量?查詢中的 –
。 –