月份和月份的第一个日期和最后日期

时间:2017-07-05 15:40:31

标签: sql oracle

如何通过将输入参数作为月份来获取oracle中的第一个日期和月份的最后日期。

例如。如果我将输入月作为' Jan'和年份' 2016'它应该给出该月的第一个日期和最后日期。

2 个答案:

答案 0 :(得分:2)

您可以使用TRUNC:

第一天:

TRUNC(your_date, 'MM')

最后一天:

ADD_MONTHS(TRUNC(your_date, 'MM'), 1) - 1

你基本上把这个月的TRUNC推到第一天,加上一个月来获得下个月的第一天,然后回去一天。

如果您没有月份中的日期而只有月份和年份,您只需使用每月的第一天来构建日期:

TO_DATE('1.' || your_month || '.' || your_year, 'DD.MM.YYYY')
ADD_MONTHS(TO_DATE('1.' || your_month || '.' || your_year, 'DD.MM.YYYY'), 1) - 1

答案 1 :(得分:0)

您可以使用TRUNCLAST_DAY功能来实现此目的。

select TRUNC(d,'MM'), LAST_DAY(d)
from (select to_date('01-2016','MM-YYYY') as d from dual);

01-JAN-2016 00:00:00    31-JAN-2016 00:00:00