Oracle中常用操作

2021-09-25 07:06:17 字數 4395 閱讀 8264

獲取前n條資料:在oracle當中是通過rownum來進行獲取前n條資料的

select * from student where rownum < n+1;

to_cahr() 的用法示例:

執行:to_char(789.123,'9999.99')  返回的是:789.12

執行:to_char(789.123,'9999.9') 返回的是:789.1

執行:tochar(21,'000099') 返回的是:000021

tochar()轉換日期示例:

執行:tochar(sysdate,'yyyy/mm/dd')  返回的是 2018/01/01

執行:tochar(sysdate,'month dd,yyyy') 返回的是:july 09,2018

執行:tochar(sysdate,'mon ddth,yyyy') 返回的是:jul 09th,2018

執行:tochar(sysdate,'fmmonth dd,yyyy') 返回的是:july 9,2018

執行:tochar(sysdate,'fmmon ddth,yyyy') 返回的是:jul 9th,2018

上面的fm的意思是去除0和空格

/* 

fm :除空格

999999.0099:小數點左邊最大正數為6位,小數點右邊最少2位,最多4位,且在第5位進行四捨五入

*/select to_char(789.1233,'fm99999.0099') from dualselect * from dual

--加法

select sysdate,add_months(sysdate,12)

from dual;

--加1年

select sysdate,add_months(sysdate,1)

from dual;

--加1月

select sysdate,to_char(sysdate+7,

'yyyy-mm-dd hh24:mi:ss'

)from dual;

--加1星期

select sysdate,to_char(sysdate+1,

'yyyy-mm-dd hh24:mi:ss'

)from dual;

--加1天

select sysdate,to_char(sysdate+1/

24,'yyyy-mm-dd hh24:mi:ss'

)from dual;

--加1小時

select sysdate,to_char(sysdate+1/

24/60,

'yyyy-mm-dd hh24:mi:ss'

)from dual;

--加1分鐘

select sysdate,to_char(sysdate+1/

24/60/

60,'yyyy-mm-dd hh24:mi:ss'

)from dual;

--加1秒

--減法 只需將上面的加號換成減號即可

--舉例:

完整的格式:select to_char(sysdate,

'yyyymmdd w hh24:mi:ss'

)from dual;

--1、取得當前日期是本月的第幾周

select to_char(sysdate,

'w')

from dual;

--2、取得當前日期是乙個星期中的第幾天,星期日為第一天

select sysdate,to_char(sysdate,

'd')

from dual;

--類似:

select to_char(sysdate,

'yyyy'

)from dual;

--年

select to_char(sysdate,

'q'from dual;

--季

select to_char(sysdate,

'mm'

)from dual;

--月

select to_char(sysdate,

'dd'

)from dual;

--日

--ddd 年中的第幾天

--ww 年中的第幾個星期

--w 該月中第幾個星期

--d 週中的星期幾

--hh 小時(12)

--hh24 小時(24)

--mi 分

--ss 秒

--3、取當前日期是星期幾,中文顯示

select to_char(sysdate,

'day'

)from dual;

--4、如果乙個表在乙個date型別的字段上面建立了索引,如何使用

alter

session

set nls_date_format=

'yyyy-mm-dd hh24:mi:ss'

--5、得到當前的日期

select sysdate from dual;

--6、得到當天凌晨0點0分0秒的日期

select trunc(sysdate)

from dual;

-- 得到這天的最後一秒

select trunc(sysdate)

+0.99999

from dual;

-- 得到小時的具體數值

select trunc(sysdate)+1

/24from dual;

select trunc(sysdate)+7

/24from dual;

--7、得到明天凌晨0點0分0秒的日期

select trunc(sysdate+1)

from dual;

select trunc(sysdate)+1

from dual;

--8、本月一日的日期

select trunc(sysdate,

'mm'

)from dual;

--9、得到下月一日的日期

select trunc(add_months(sysdate,1)

,'mm'

)from dual;

--10、返回當前月的最後一天

select last_day(sysdate)

from dual;

select last_day(trunc(sysdate)

)from dual;

select trunc(last_day(sysdate)

)from dual;

select trunc(add_months(sysdate,1)

,'mm')-

1from dual;

--11、得到一年的每一天

select trunc(sysdate,

'yyyy'

)+ rn -

1 date0

from

(select rownum rn from all_objects

where rownum<

366)

;--12、今天是今年的第n天

select to_char(sysdate,

'ddd'

)from dual;

--13、如何在給現有的日期加上2年

select add_months(sysdate,24)

from dual;

--14、判斷某一日子所在年分是否為潤年

select decode(to_char(last_day(trunc(sysdate,

'y')+31

),'dd'),

'29'

,'閏年'

,'平年'

)from dual;

--15、判斷兩年後是否為潤年

select decode(to_char(last_day(trunc(add_months(sysdate,24)

,'y')+

31),'dd'),

'29'

,'閏年'

,'平年'

)from dual;

--16、得到日期的季度

select ceil(to_number(to_char(sysdate,

'mm'))

/3)from dual;

select to_char(sysdate,

'q')

from dual;

參考自:

oracle中常用函式大全

1 數值型常用函式 函式 返回值 樣例 顯示 ceil n 大於或等於數值n的最小整數 select ceil 10.6 from dual 11 floor n 小於等於數值n的最大整數 select ceil 10.6 from dual 10 mod m,n m除以n的餘數,若n 0,則返回m...

Oracle中常用的函式

解釋 如果引數一expr1為空 包括null和 則結果為expr2的值,如果expr1不為空,則結果為expr1的值。sql select nvl null,1 from dual nvl null,1 1sql select nvl 1 from dual nvl 1 1sql select nv...

Oracle中常見的操作

1.建立oracle表空間 2.刪除oracle表空間 示例 drop tablespace my space including contents and datafiles 3.檢視當前所有的表空間和表空間對應的資料檔案的位置 select from dba tablespaces 檢視當前所有...