Oracle資料庫基礎知識點
阿新 • • 發佈:2019-01-02
3.3、日期常用函式
—— last_day();
返回當月的最後一天
SELECT LAST_DAY(SYSDATE) FROM DUAL;
指定返回15年2月份的最後一天是多少
SELECT LAST_DAY('01-2月-15')FROM DUAL;
——add_monthS(DATE ,I)
I可以正數也可以是負數也可以是小數,小數位自動捨棄,正數往後,負數往前
查詢員工入職後的20週年紀念日。
SELECT ENAME,ADD_MONTHS(HIREDATE,20*12)AS A FROM EMP;
計算3個月後的今天是哪一天,星期幾?
SELECT TO_CHAR((ADD_MONTHS(SYSDATE,-10*12)),'YYYY-MM-DD DAY')FROM DUAL;
——months_between()
返回兩個日期之間間隔的月數, 如果間隔的月之間不為整數就返回小數,第二個引數比第一個引數時間
晚的話會返回一個負數
select ename, months_between(hiredate,sysdate)hiredate from emp;
——next_day()
查詢下個禮拜幾是哪一天, 中間引數在中文環境可以寫中文,英文環境下要寫英文的星期幾,
嫌麻煩的可以採用數字來1-7代替,注意1表示的星期天,7表示的星期六
下個禮拜三是哪一天
SELECT TO_CHAR((NEXT_DAY(SYSDATE,'星期三')),'YYYY-MM-DD DAY')AS NEXTWEEK FROM DUAL;
下個禮拜四是哪一天
SELECT TO_CHAR((NEXT_DAY(SYSDATE,5)),'YYYY-MM-DD DAY')AS NEXTWEEK FROM DUAL;
注意:如果還未過本週的週四,那麼顯示的是本週週四
——比較函式:least()
*引數型別必須匹配,如果後面引數型別,不同於前面的引數的資料型別,會做自動轉換,能轉換就比較,
不能轉換就報錯。但自動轉換要注意符合前面引數的格式
比較後,哪個小返回哪個。
SELECT LEAST(SYSDATE,'09-9月-16')FROM DUAL;
——extract():抽取或提取
從當前的系統時間中提取今年的數字
SELECT EXTRACT(YEAR FROM SYSDATE)AS YEAR FROM DUAL;
從指定的時間中獲取hour
SELECT EXTRACT(HOUR FROM TIMESTAMP'2016-10-10 15:35:23)FROM DUAL;
—— last_day();
返回當月的最後一天
SELECT LAST_DAY(SYSDATE) FROM DUAL;
指定返回15年2月份的最後一天是多少
SELECT LAST_DAY('01-2月-15')FROM DUAL;
——add_monthS(DATE ,I)
I可以正數也可以是負數也可以是小數,小數位自動捨棄,正數往後,負數往前
查詢員工入職後的20週年紀念日。
SELECT ENAME,ADD_MONTHS(HIREDATE,20*12)AS A FROM EMP;
計算3個月後的今天是哪一天,星期幾?
SELECT TO_CHAR((ADD_MONTHS(SYSDATE,-10*12)),'YYYY-MM-DD DAY')FROM DUAL;
——months_between()
返回兩個日期之間間隔的月數, 如果間隔的月之間不為整數就返回小數,第二個引數比第一個引數時間
晚的話會返回一個負數
select ename, months_between(hiredate,sysdate)hiredate from emp;
——next_day()
查詢下個禮拜幾是哪一天, 中間引數在中文環境可以寫中文,英文環境下要寫英文的星期幾,
嫌麻煩的可以採用數字來1-7代替,注意1表示的星期天,7表示的星期六
下個禮拜三是哪一天
SELECT TO_CHAR((NEXT_DAY(SYSDATE,'星期三')),'YYYY-MM-DD DAY')AS NEXTWEEK FROM DUAL;
下個禮拜四是哪一天
SELECT TO_CHAR((NEXT_DAY(SYSDATE,5)),'YYYY-MM-DD DAY')AS NEXTWEEK FROM DUAL;
注意:如果還未過本週的週四,那麼顯示的是本週週四
——比較函式:least()
*引數型別必須匹配,如果後面引數型別,不同於前面的引數的資料型別,會做自動轉換,能轉換就比較,
不能轉換就報錯。但自動轉換要注意符合前面引數的格式
比較後,哪個小返回哪個。
SELECT LEAST(SYSDATE,'09-9月-16')FROM DUAL;
——extract():抽取或提取
從當前的系統時間中提取今年的數字
SELECT EXTRACT(YEAR FROM SYSDATE)AS YEAR FROM DUAL;
從指定的時間中獲取hour
SELECT EXTRACT(HOUR FROM TIMESTAMP'2016-10-10 15:35:23)FROM DUAL;