2014-03-30 39 views
0

我的查询是,我需要给一个月的输入,例如:输入将是'MAR',那么我需要得到3月份的第一个日期和最后一个日期。如何从月份获取日期作为oracle中的输入?

select to_char(trunc(trunc(sysdate, 'MM'), 'MM'),'DD-MON-YYYY') "First Day of Last Month" 
     , to_char(trunc(sysdate, 'MM') ,'DD-MON-YYYY') "Last Day of Last Month" 
from dual ; 

任何一个请帮助..

+0

[使用PL/SQL最后dateof月](可能重复http://stackoverflow.com/questions/20680985/last-dateof- month-using-pl-sql) – APC

回答

1
month_start := to_date('MAR', 'MON'); 
month_end := last_day(month_start); 
  • 月份名称取决于NLS语言/地区的具体情况,可能需要调整它们。 (alter session set nls_language/nls_territory = AMERICAN/AMERICA)。
  • 你还没有提到今年会是什么,所以假设你需要最新的一年。

如果今年也是一个可变的输入:

month_start := to_date('2015-MAR', 'yyyy-MON'); 
+0

谢谢你,所以如果我们想要特定年份? – kartik

+0

特定年份,例如:'to_date('2013-SEP','yyyy-MON')' – Yavor

+0

@kartik,如果您可以同意使用数字月份而不是名称(例如03而不是MAR):那样会阻止提到NLS的麻烦。 – Yavor

相关问题