Oracle中DATEADD()的等效函数

Gee*_*thu 18 sql oracle

我必须得到Oracle系统日期后6个月的日期.
我必须通过从SQL运行开放查询来获得它.DATEADD(MONTH,-6, GETDATE()) 函数在SQL中起作用.

请问功能DATEADD(MONTH,-6, GETDATE())在SQL有一个equivalent在Oracle中的功能?

Mah*_*kar 27

方法1: ADD_MONTHS

ADD_MONTHS(SYSDATE, -6)

方法2: 间隔

SYSDATE - interval '6' month

注意: 如果您想从当月开始执行操作,TRUNC(SYSDATE,'MONTH')那么就会给出.它期望Date数据类型作为输入.

  • 只需要小心间隔,试试这个:`select to_date('31082014','DDMMYYYY')+间隔'1'月来自双 (6认同)
  • 为之前的评论添加更多上下文。提供的查询失败:[22008][1839] ORA-01839: 日期对于指定的月份无效...因为它将月份值加 1,但 9 月只有 30 天。 (3认同)

has*_*own 7

相当于

ADD_MONTHS( SYSDATE, -6 )
Run Code Online (Sandbox Code Playgroud)


Pap*_*ahl 6

不是我的回答

我对上述答案不太满意,并且进行了一些额外的搜索:

SELECT SYSDATE AS current_date,

       SYSDATE + 1 AS plus_1_day,

       SYSDATE + 1/24 AS plus_1_hours,

       SYSDATE + 1/24/60 AS plus_1_minutes,

       SYSDATE + 1/24/60/60 AS plus_1_seconds

FROM   dual;
Run Code Online (Sandbox Code Playgroud)

我发现这很有帮助。来自http://sqlbisam.blogspot.com/2014/01/add-date-interval-to-date-or-dateadd.html