1.首先是日期轉化的兩種格式,一般用第二種多吧。
to_date("要轉換的字元串","轉換的格式") 兩個參數的格式必須比對,否則會報錯。即按照第二個參數的格式解釋第一個參數。
to_char(日期,"轉換格式" ) 即把給定的日期按照“轉換格式”轉換。
取系統目前時間 并轉化成 yyyy-mm-dd(年月日格式)
to_char(sysdate,'yyyy-mm-dd')
2.下面要用到add_months()函數 負數:代表往前 正數:代表往後。
根據系統目前時間,取到上個月月底(上個月最後一天)并轉化
to_char(last_day(add_months(sysdate,-1)),'yyyy-mm-dd')
根據系統目前時間,取到上個月月初(上個月第一天) 并轉化
to_char((LAST_DAY(ADD_MONTHS(SYSDATE, -2)) + 1,'yyyy-mm-dd')
3.dual是oracle中的僞表。
具體含義:Dual 是 Oracle中的一個實際存在的表,任何使用者均可讀取,常用在沒有目标表的select語句塊中
根據系統目前時間 取上一個月 并轉化
select to_char(add_months(trunc(sysdate),-1),'yyyymm') from dual;
根據系統目前時間 取下一個月 并轉化
select to_char(add_months(trunc(sysdate),1),'yyyymm') from dual;
4.TRUNC函數為指定元素而截去的日期值。
函數方法:TRUNC(date,[fmt])
date:代表日期, fmt:代表日期格式
trunc(sysdate,'yyyy') --傳回當年第一天。 2017-01-01
trunc(sysdate,'mm') --傳回當月第一天。 2017-07-01
trunc(sysdate,'d') --傳回目前星期的第一天。2017-07-17
trunc(sysdate,'dd')--傳回目前年月日 2017-07-19
trunc (sysdate, 'hh') -- 傳回目前時間 小時 2017-07-19 10:00:00 目前時間為 10點11分
trunc (sysdate, 'mi') -- 傳回目前時間 分鐘 2017-07-19 10:11:00 trunc函數不精确到秒