Oracle获取每月天数的实现方式(oracle获取月份天数)
Oracle每月天数的获取是一个常见的需求,可以用以下实现方式来实现。
#### 月尾最后一天的获取
首先需要 根据指定的时间节点获取该月的最后一天,主要利用add_months和last_day函数实现,具体实现方式如下:
“` sql
— 方式1
SELECT add_months(LAST_DAY(sysdate),0) FROM dual;
— 方式2
SELECT TRUNC(SYSDATE,’MM’)+Interval ‘1’ Month-Interval ‘1’ Day from dual;
当然,如果我们想获取专门某一年每个月最后一天,可以使用下面的语句实现:
```sqlSELECT
LAST_DAY( TO_DATE( TO_CHAR( ADD_MONTHS(TO_DATE('2015-01-01 00:00:00','yyyy-MM-dd hh24:mi:ss'), LEVEL-1),
'yyyy-MM-dd') )
) "LAST_DAY"FROM DUAL
CONNECT BY LEVEL
#### 月总天数的获取
将上面月尾最后一天的获取方法需要进行改动,可以使用以下语句实现:
“`sql
— 方式1
SELECT LAST_DAY(add_months(sysdate,0))-TRUNC(SYSDATE,’MM’)+Interval ‘1’ Day from dual;
— 方式2
SELECT To_char(add_months(sysdate,-1),’dd’) from dual;
— 方式3
SELECT
TO_CHAR(
LAST_DAY( TO_DATE(
TO_CHAR( ADD_MONTHS(TO_DATE(‘2015-01-01 00:00:00′,’yyyy-MM-dd hh24:mi:ss’), LEVEL-1),
‘yyyy-MM-dd’)
)
) – TO_DATE(
TO_CHAR( ADD_MONTHS(TO_DATE(‘2015-01-01 00:00:00′,’yyyy-MM-dd hh24:mi:ss’), LEVEL-1),
‘yyyy-MM-dd’)
, ‘dd’
) “Total_Days”
FROM DUAL
CONNECT BY LEVEL
由此可见,Oracle中获取每月的天数的实现方式虽然有类似形式,但仍有所不同,根据不同的实际需求,可以选择合适的语句来实现。