如何在Oracle中的日期添加间隔

时间:2016-02-15 16:52:43

标签: oracle

我试图从' date'的产品中获取新的约会。 +'时间间隔'。

像这样。

  

' 15/02/2016 18:00:00' +' +00 02:00:00.000000'

预期结果:

  

' 15/02/2016 20:00:00'

但是使用数据库中的列。

CREATE TABLE timerest 
(
      DATE_ASIGN         DATE,   
      TIME_ASIGN         INTERVAL DAY(2) TO SECOND(0) 
);

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

您可以将它们添加到一起:

insert into timerest (date_asign, time_asign)
values (to_date('15/02/2016 18:00:00', 'DD/MM/YYYY HH24:MI:SS'),
  to_dsinterval('+00 02:00:00.000000'));

alter session set NLS_DATE_FORMAT = 'DD/MM/YYYY HH24:MI:SS';
select date_asign + time_asign from timerest;

DATE_ASIGN+TIME_ASIGN
---------------------
15/02/2016 20:00:00  

遵循datetime/interval arithmetic的规则:date + interval = date。

答案 1 :(得分:0)

如果你有DATE格式的日期,你可以简单地添加一个代表天数的数字区间(例如1.5是1天半)

您可以从时间间隔中提取天数和小时数,然后将它们添加到您的日期,因为如果我没记错的话,您无法直接将它们添加到日期类型(可能是时间戳类型)

要提取日期,您可以使用提取功能: ( 提取(第二次来自TIME_ASIGN)/ 3600)+(提取(从TIME_ASIGN开始的小时)/ 24)+(提取(从TIME_ASIGN开始的日期)/ 24)

然后将数字添加到DATE_ASIGN