给时间戳添加日期

22

如何将天数添加到时间戳?如果我的时间戳是01-JAN-2011 11-09-05,并且我要添加2天,则我希望得到03-JAN-2011 11-09-05

3个回答

37
select '01-jan-2011 11-09-05' + interval '2' day

8
一个更完整的Oracle示例:SELECT TO_TIMESTAMP('01-jan-2011 11-09-05','DD-Mon-YYYY HH24-MI-SS') + INTERVAL '2' DAY FROM dual; (翻译:这是一个更完整的Oracle示例,它将把字符串转换为时间戳格式,并在其基础上加上2天的时间间隔。该查询语句将从名为" dual "的虚拟表中获取结果) - DCookie
1
使用间隔时间似乎比使用 + 更好,因为我注意到后者会丢失时区信息。 - Antoine Martin

4

完全基于Oracle的解决方案是,将时间戳值增加2,因为Oracle日期/时间戳的默认间隔是天:

SELECT TO_TIMESTAMP('01-jan-2011 11-09-05','DD-Mon-YYYY HH24-MI-SS') + 2
  FROM dual;

1
一个时间戳加上一个数值会得到一个日期。 - llayland
1
使用 + 可能会丢失时区信息。 - Antoine Martin

2

在类似的情况下,我使用了:

SELECT TO_TIMESTAMP('01-jan-2011 11-09-05','DD-Mon-YYYY HH24-MI-SS') + NUMTODSINTERVAL(2, 'DAY')

否则,表达式会被转换为日期并失去精度。请参见:NUMTODSINTERVAL文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接