單行函數(日期函數)


偽列不存在的列,但是能顯示
SELECT SYSDATE FROM dual;//時間
SELECT SYSTIMESTAMP FROM dual;//時間戳
公式:
日期+數字 = 日期(若干天之后的日期)
日期 - 數字 = 日期(若干天之前的日期)
日期-日期 = 數字(天數)
SELECT SYSDATE-7 ,SYSDATE+120 FROM dual;
對於日期而言,由於每個月的天數是不同的,所以直接進行天數加法實現月數的計算時不准確的.
SELECT empno,ename,job,SYSDATE- hiredate FROM emp;
為了准確的進行日期操作,在ORACLE里面提供四個日期處理函數。
NO 函數名稱 描述
1 日期ADD_MONTHS(列|日期,月數) 在指定的日期上增加若干個月之后的日期
2 數字MONTHS_BETWEEN(列|日期,列|日期) 返回兩個日期直接的所經歷月數
3 日期LAST_DAY(列|日期) 取得指定日期的最后一天
4 日期NEXT_DAY(列|日期) 返回下一個一周時間數指定的日期
計算所有雇員到今天為止的月數
SELECT empno,ename,hiredate,ROUND(MONTHS_BETWEEN(SYSDATE,hiredate)) FROM emp;
計算當前時間所在月的最后一天日期;
SELECT LAST_DAY(SYSDATE)FROM dual;
要求查詢所有在雇佣所在月倒數第三天雇佣的雇員信息;
SELECT hiredate,ename, LAST_DAY(hiredate)-2 FROM emp WHERE hiredate=LAST_DAY(hiredate)-2;
SELECT LAST_DAY(hiredate)-2 FROM emp WHERE hiredate=LAST_DAY(hiredate)-2;
SELECT * FROM emp WHERE hiredate=LAST_DAY(hiredate)-2;
利用日期函數的操作是最准確的。
SELECT NEXT_DAY(SYSDATE,’星期二’)FROM dual;//現在到下一個這個星期
例子:要求以年、月、日的方式計算出雇員到現在為止的雇佣年限。
SELECT empno,ename,hiredate,TRUNC(MONTHS_BETWEEN(SYSDATE,hiredate)/12)year,//得到empo,ename,hiredate表,並且得到省略后的月數
TRUNC(MOD(MONTHS_BETWEEN(SYSDATE,hiredate),12))months,//對年數求模
TRUNC(SYSDATE-ADD_MONTHS(hiredate,MONTHS_BETWEEN(SYSDATE,hiredate)))day//當前日期-雇佣日期增加的(當前日期與雇佣日期的月數差)ADD_MONTHS(hiredate,MONTHS_BETWEEN(SYSDATE,hiredate))年和月沒有天數
FROM emp;


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com