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;


当然,如果我们想获取专门某一年每个月最后一天,可以使用下面的语句实现:

```sql
SELECT
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中获取每月的天数的实现方式虽然有类似形式,但仍有所不同,根据不同的实际需求,可以选择合适的语句来实现。

数据运维技术 » Oracle获取每月天数的实现方式(oracle获取月份天数)