Oracle:獲取當前日期的上個月的第一天和最后一天(to_char、trunc、add_months、last_day)


select to_char(trunc(add_months(sysdate,-1),'mm'),'yyyymmdd') first_day,to_char(last_day(add_months(sysdate,-1)),'yyyymmdd') last_day from dual;

 

oracle不區分大小寫,MM和mm效果一樣。 

一.to_char()函數

to_char()函數:可以將日期按照一定格式轉換為字符串類型

與to_char()函數相反的則是to_date()函數,可以將字符串類型轉換為日期類型。

select to_char(sysdate,'yyyy') as nowYear from dual; --獲取時間的年 2016
 
select to_char(sysdate,'mm') as nowMonth from dual; --獲取時間的月 09
 
select to_char(sysdate,'dd') as nowDay from dual; --獲取時間的日 07
 
select to_char(sysdate,'hh24') as nowHour from dual; --獲取時間的時 10
 
select to_char(sysdate,'mi') as nowMinute from dual; --獲取時間的分 33
 
select to_char(sysdate,'ss') as nowSecond from dual; --獲取時間的秒 11
 
select to_char(sysdate,'day') as nowDay from dual; --獲取當天是星期幾 星期三
 
select to_char(sysdate,'D') as nowDay from dual; --獲取當天是星期幾 4
 
select floor(sysdate - to_date('2016-08-05','yyyy-mm-dd')) from dual; --取兩個日期間的天數 33

二.trunc()函數

trunc()函數兩種用法,截斷數字或者是截斷日期。

1.截斷數字:格式:TRUNC(n1,n2),n1表示被截斷的數字,n2表示要截斷到那一位。n2可以是負數,表示截斷小數點前。注意,TRUNC截斷不是四舍五入。

2.截斷日期:

截取今天:select sysdate,trunc(sysdate,'dd') from dual
截取本周第一天:select sysdate,trunc(sysdate,'d') from dual
截取本月第一天:select sysdate,trunc(sysdate,'mm') from dual
截取本年第一天:select sysdate,trunc(sysdate,'y') from dual
。。。。

 

三.add_months()函數

add_month(n1,n2),n1表示日期格式數據,n2表示對日期加減的數字(以月為單位)

獲取上個月的今天:select add_months(sysdate,-1) from dual

四.last_day()函數

last_day()函數返回指定日期對應月份的最后一天

獲取當前日期的最后一天:SELECT last_day(SYSDATE) FROM dual


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM