今天遇到的問題是:
我需要乙個201802281530時間格式的字串(即年月日時分),但是讀取的oracle資料庫裡只有2018-02-28 15:30:00這種格式的char型別。由於程式大都是直接呼叫其他方法,不方便在程式內操作,只能在oracle讀取時解決問題。
解決後的最終sql**為:
substr(regexp_replace(datatime,'[^0-9]+',''),1,12)
datatime即為2018-02-28 15:30:00這種格式。
這裡用到了substr方法、regexp_replace方法以及正規表示式,其實在oracle的字串操作裡,regexp_replace和regexp_substr這兩個方法都很常用,在此學習下:
有6個引數:
第乙個引數:srcstr,是要操作的字串
第二個引數:pattern,要替換掉的字串,支援正規表示式
第三個引數:replacestr,是要替換成的字串
第四個引數:position,是起始位置,即從第幾個位置開始匹配。(預設為1)
第五個引數:occurrence,標識第幾個匹配組(預設為0全部都替換掉)
第六個引數:modifier,是取值範圍:
i:大小寫不敏感;
c:大小寫敏感;
n:點號 . 不匹配換行符號;
m:多行模式;
x:擴充套件模式,忽略正規表示式中的空白字元。
有5個引數:
第乙個引數:srcstr,是要切割的字串
第二個引數:pattern,要切割掉的字串,支援正規表示式
第四個引數:position,是起始位置,即從第幾個位置開始匹配。(預設為1)
第五個引數:occurrence,標識第幾個匹配組(預設為1)
第六個引數:modifier,是取值範圍:(預設為c)
i:大小寫不敏感;
c:大小寫敏感;
n:點號 . 不匹配換行符號;
m:多行模式;
x:擴充套件模式,忽略正規表示式中的空白字元。
oracle擷取字串
格式1 substr string string,int a,int b 格式2 substr string string,int a 解釋 格式1 1 string 需要擷取的字串 2 a 擷取字串的開始位置 注 當a等於0或1時,都是從第一位開始擷取 3 b 要擷取的字串的長度 格式21 str...
oracle中擷取字串
substring 返回字元 binary text 或 image 表示式的一部分。有關可與該函式一起使用的有效 microsoft sql server 資料型別的更多資訊,請參見資料型別。語法 substring expression start length 引數 expression 是字...
oracle 分割字串 擷取字串
在我們平時的處理過程總往往會遇到要把乙個字串拆分成乙個陣列,加在 in 後面作為條件,現提供兩種方似乎。1 正規表示式分割字串 select regexp substr 2,3,4,5 1,l count stype from dual,select level l count from dual ...