天碰到只要取月份和天數,如果月份前面有0要去掉0.比如說2010-01-08 ,需要的結果是1-8. 引出了一系列的sql語句
第一: 利用to_number的函式轉換自動截0
select to_number(to_char(sysdate,'mm『))||'-'||to_number(to_char(sysdate,'dd』)) from dual;
第二: 利用ltrim函式加固定引數去掉0
select ltrim(to_char(sysdate,'mm『),'0』)||'-'||ltrim(to_char(sysdate,'dd『),'0』) from dual;
上面兩種方法實現了我們所需要的,共同的特點是都用到兩個函式了,但有沒有更簡單的方法呢 ? 我猜有的人肯定就想到了oracle是不是有這樣的格式呢 select to_char(sysdate,'m-d『) from dual; 很可惜,提示錯誤,日期格式不存在 .不要灰心,我們繼續…
第三:利用函式的特性。
我們知道 select sysdate from dual ; 得到的值是:2010-1-8 11:06:18 那有沒有函式直接獲取到月份1和日8,
我們的猜測是正確的,確實有這樣的函式,出現了下面的函式,
select extract(month from sysdate) ||'-'|| extract(day from sysdate) month from dual;
注意: extract 具體的用法:
上面的方法有乙個共同的特徵,就是月和日都是分開取的,怎麼樣才能 合併到一起去,這樣多好啊 !
看我們的第四種方法:
第四:巧用oracle自帶的格式
select to_char(sysdate,'fmmm-dd『) from dual;
[color=red]其中最看好的是第四中使用 fmmm 能夠把月份和日期前面的零都過濾掉[/color]
參考:
Oracle時間去除零的問題
天碰到只要取月份和天數,如果月份前面有0要去掉0.比如說2010 01 08 需要的結果是1 8.引出了一系列的sql語句 第一 利用to number的函式轉換自動截0 select to number to char sysdate,mm to number to char sysdate,dd...
oracle 時間問題
今天用到oracle時間比較,看到網上也有很多,自己就總結了下啊 1,比較兩個時間的大小 也可以是字串表示時間 select from table where to date 欄位1,yyyy mm dd hh24 mi ss to date 2012 2 8 yyyy mm dd hh24 mi ...
Oracle中的時間轉換問題
1.從頁面接收的時間是string型別,to date yyyy mm dd 函式 在資料庫插入時,例如 string sqlstring insert into tbl compact xy values to date test.getsigndatestr yyyy mm dd 2.用 dat...