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