如何使用sysdate在oracle中获得接下来的三个月

时间:2013-03-12 11:58:54

标签: sql-server oracle date-arithmetic

我有一个返回当前和未来3个月的SQL Server服务器查询

SELECT CAST(DATENAME(month, getdate() )               as VARCHAR(3))  
     , CAST(DATENAME(month, dateadd(mm,1,getdate()) ) as VARCHAR(3))
     , CAST(DATENAME(month, dateadd(mm,2,getdate()) ) as VARCHAR(3))
     , CAST(DATENAME(month, dateadd(mm,3,getdate()) ) as VARCHAR(3)) 

我如何将其修改为等效的oracle查询

3 个答案:

答案 0 :(得分:2)

函数TO_CHAR()可用于将日期转换为字符。要使用3字符格式获取当前月份,您可以在使用TO_CHAR()时使用format model MON。返回的数据遵循格式模型的大小写。

例如:

SQL> select to_char(sysdate, 'mon')
  2       , to_char(sysdate, 'MON')
  3    from dual;

TO_CHAR(SYSD TO_CHAR(SYSD
------------ ------------
mar          MAR

函数ADD_MONTHHS()可用于将日期添加到日期:

SQL> select to_char(add_months(sysdate, 1), 'MON')
  2    from dual;

TO_CHAR(ADD_
------------
APR

您可以对此进行扩展以转换整个查询。

答案 1 :(得分:0)

请尝试:

select TO_CHAR(SYSDATE, 'Month'), 
  TO_CHAR(ADD_MONTHS(SYSDATE, 1), 'Month'), 
  TO_CHAR(ADD_MONTHS(SYSDATE, 2), 'Month'), 
  TO_CHAR(ADD_MONTHS(SYSDATE, 3), 'Month')  
FROM DUAL;

答案 2 :(得分:0)

试试这个:

select to_char(CURRENT_DATE,'Month'),
to_char(ADD_MONTHS( CURRENT_DATE, 1 ), 'Month'),
to_char(ADD_MONTHS( CURRENT_DATE, 2 ), 'Month'),
to_char(ADD_MONTHS( CURRENT_DATE, 3 ), 'Month')



from dual