Oracle

如何在沒有 varchar 轉換的情況下將時間從 Date 值添加到另一個?

  • October 18, 2019

假設我在儲存過程中有 2 個變數,都是日期

Foo包含'13/10/2019 00:00:00'

酒吧包含'01/10/1914 16:33:11'

我想將Bar 的時間添加到Foo 的日期,以便獲得一個Foobar變數,其中包含13/10/2019 16:33:11

有沒有辦法在不將它們中的任何一個轉換為 varchar 的情況下實現這一點?

簡單的加法和減法。

雖然程式碼是 SQL 程式碼,但數學在 PL/SQL 中的工作方式相同。

這段程式碼:

alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
with data as (
   select TO_date( '13/10/2019 00:00:00', 'DD/MM/YYYY HH24:MI:SS') as foo
        , to_date( '01/10/1914 16:33:11', 'DD/MM/YYYY HH24:MI:SS') as bar from dual
)
select foo, foo + (bar - trunc(bar)) foo_modified, bar from data

產生這個期望的結果:

FOO                 FOO_MODIFIED        BAR                
------------------- ------------------- -------------------
2019-10-13 00:00:00 2019-10-13 16:33:11 1914-10-01 16:33:11

引用自:https://dba.stackexchange.com/questions/251487