日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle 数字处理函数,Oracle函数-单行函数-数字、日期、日期处理函数

發布時間:2023/12/4 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 数字处理函数,Oracle函数-单行函数-数字、日期、日期处理函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數的分類

單行函數:一個input對應一個output,input和output存在一一對應的關系 如lower

組函數:多個input,但是只對應一個output。如 sum()

==========================================================

單行函數

特點:

每行返回一個結果,輸入輸出存在一一對應的關系

能嵌套使用 ,一個函數的輸出能做另外一個函數的輸入 如:select lowner(upper('aa')) from dual;

傳入的變量可以是列的值,也可以是表達式。 如 select lower(ename) from emp;

==========================================================

1、數字函數

對數字進行操作,是加減乘除的補充

SQL>select round(45.926,2) from dual; ? ?--四舍五入,第二位保留幾個小數點

SQL>select trunc(45.926,2) from dual; ? ? ?--直接截取,不進行四舍五入

SQL>select mod(10,3) from dual; ? ?--求余數

2、日期函數

oracle數據庫存儲日期的默認顯示格式是DD-MON-YY

修改日期顯示格式:

alter session set nls_date_format='';

3、SYSDATA:查看系統時間

SQL>select sysdate from dual; ?--查看系統當前時間

SQL>select sysdate,sysdate-7 from dual; ? --減1星期

SQL>select sysdate,sysdate-1 from dual; ? --減1天

SQL>select sysdate,sysdate-1/24 from dual; ?--減1小時

SQL>select sysdate,sysdate-1/24/60 from dual; ?--減1分鐘

SQL>select sysdate,sysdate-1/24/60/60 from dual; ?--減1秒

4、日期處理函數

現有日期加上或者減去一個值會得到一個日期。如 select sysdate,sysdate-7 from dual;

兩個日期相減可以得到兩個日期的天數(時間間隔) 如 select (sysdate-hiredate)/7 weeks from emp;

①months_between 兩個日期之間有多少個月

SQL>select months_between(sysdate,sysdate-1000) from dual;

②add_months 指定日期下加多少個月

SQL>select add_months(sysdate,2) from dual;

③last_date 指定日期的最后一天

SQL>select last_day(sysdate) from dual;

5、日期的四舍五入:

對年份,按照1-6月,7-12月進行四舍五入

對月份,按照1-15,15-31日進行四舍五入

對日,按照星期天到星期三,注意:每周的開始是星期天。

SQL> select sysdate from dual;

SYSDATE

------------

16-MAY-16 ? ? ? ? ? ? ? ? ? ? ? 當前是16年5月16日

==========================================================

SQL> select round(sysdate,'year') from dual;

----對年進行四舍五入,也就是精確到年份,現在是5月,沒有過6月,所以結果為16-1-1

ROUND(SYSDATE)

------------

01-JAN-16

==========================================================

SQL> select round(sysdate+60,'year') from dual; ?-5月16日加60天,已經到了7月,所以結果為17-1-1

ROUND(SYSDATE)

------------

01-JAN-17

==========================================================

SQL> select round(sysdate,'month') from dual;

-----對月份進行四舍五入,也就是精確到月份。現在是16號,過了15,號 所有結果為下一個月1日

ROUND(SYSDATE)

------------

01-JUN-16

==========================================================

SQL> select round(sysdate+22,'month') from dual;

----現在是5月16號,22天后是7月7日, 7號沒有過15,所以結果為16-07-01

ROUND(SYSDATE)

------------

01-JUL-16

==========================================================

SQL> !date

Mon May 16 22:47:25 CST 2016

2016年5月16日,周一, ?本周的起始時間是 5月15日(每周日為一個星期的開始,周六為一個星期的結束)

==========================================================

SQL>select round(sysdate,'day') from dual;

----對日進行四舍五入,也就是看星期幾 5月16日是星期一,沒過星期三,所以不“進位”,顯示本周第一天

ROUND(SYSDATE)

------------

15-MAY-16

==========================================================

SQL>select round(sysdate+3,'day') from dual;

----16日是星期一,加三天就是星期四,超過了星期三,所以進位,顯示下一周的星期一

==========================================================

SQL>select round(sysdate-3,'day') from dual;

----星期一減三天是上個星期的星期五,超過了星期三,所以進位,顯示當前周的下一個星期一,也就是15號

總結

以上是生活随笔為你收集整理的oracle 数字处理函数,Oracle函数-单行函数-数字、日期、日期处理函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。