進入新的專案組,一直在做資料庫開發測試這塊的東東。下面就是分享一下我自己工作中遇到的一些問題吧。沒有什麼系統性,寫的比較散,不喜勿噴啊!!
1.數字格式的一些問題
我在工作過程中遇到了各種各樣的資料要求格式問題
1)小數末尾『0』不展示。
我使用的是rtrim函式
select rtrim(to_char(0.45550000,'0.9999999999'),'o') from dual;
2)對於0.***的小數不展示小數點前的『0』
select to_char(0.25360,'.99999') from dual;
ps:如果此時既不想展示前面的0也不想展示後面的0那麼
select rtrim(0.25360,'0') from dual;
但這時會出現一種情況如果查詢的是0,經過處理後就變成null了
3)科學計數法的使用
select to_char(0.555555555555,9.999eeee) from dual;
eeee前面的9個數不一樣,顯示的結果也不一樣哦,自己試試啊。
4)顯示為百分數形式
select to_char(round(0.3253665,4) *100,'990.99')||'%' from dual;
2.時間的一些計算問題
求乙個月所在的季度問題,以及資料的查詢時間的起始和終止時間,即 查詢粒度問題
季度開始時間
select substr($begintime, 1, 4) ||
lpad(ceil(to_number(substr($begintime, 5, 2) ) / 3 - 1) * 3 + 1,
2,0)
from dual
自己在使用的時候注意先試試看,有可能會需要涉及一些時間轉換的問題。
終止時間()
select to_char(add_months(to_date(substr($endtime, 1, 4) ||
lpad(ceil(to_number(substr($endtime,
5,2)) / 3) * 3,
2,0),
'yyyymm'),1),
'yyyymmdd')
from dual
--查詢出的結果應該是下乙個季度的第一天,這個語句應該是有錯誤的,主要是函式的轉換這塊。
時間的加減問題
天數的加減
直接在時間後面直接 「+ number」 就可以了
小時的加減
在時間後面 「+number/24」
分鐘+number/60/24
月加減 直接函式搞定
add_minths
oracle學習總結1
1 解鎖使用者 alter user 使用者名稱 account unlock 2 獲取系統時間 隨機數 select sysdate,sys guid from dual 3 起別名,使可讀性更強,如果想保留字段原來模樣,可以 使用雙引號括起來 select ename,salary 12 fro...
oracle學習總結
一 定位 oracle分兩大塊,一塊是開發,一塊是管理。開發主要是寫寫儲存過程 觸發器什麼的,還有就是用oracle的develop工具做form。有點類似於程式設計師,需要有較強的邏輯思維和創造能力,個人覺得會比較辛苦,是青春飯j 管理則需要對oracle資料庫的原理有深刻的認識,有全域性操縱的能...
Oracle 學習總結
在家耽誤了一年,重新上班才發現,以前好多順手牽來的 都變的模糊了,所以隨時做好筆記很重要。1 1 檢視表的comment select from user tab comments where table name tj dtjczbtj 2 檢視當前使用者所有表的comment select fr...