之前小編在工作中遇到一些處理資料的問題,例如完成日期格式化,獲取幾天後的時間,生成指定格式的編碼等問題,這時候小編經常會寫一大堆邏輯**來進行處理,還自己感覺自己很流弊的樣子,後來卻發現同事遇到相同的問題並沒有寫一大堆邏輯**,好奇心下促使我偷偷的看了下同事的**,才明白他們很喜歡使用sql中的函式直接處理了,大大減少了**量,於是小編決定加強這方面的知識,多積累多看,把比較實用的一些sql函式列舉出來,望指點一下。
no1: datediff函式
datediff函式返回兩個日期之間的天數
語法:datediff(date1,date2)
select datediff('2018-07-01','2018-07-04');
執行結果:-3
所以,datediff函式對時間差值的計算方式為date1-date2的差值。
no2: timestampdiff函式
timestampdiff函式日期或日期時間表示式之間的整數差。
語法:timestampdiff(interval,datetime1,datetime2),比較的單位interval可以為以下數值
frac_second。表示間隔是毫秒
second。秒
minute。分鐘
hour。小時
day。天
week。星期
month。月
quarter。季度
year。年
select timestampdiff(day,'2018-07-01 09:00:00','2018-07-04 12:00:00');
執行結果:3
所以,timestampdiff函式對日期差值的計算方式為datetime2-datetime1的差值。
請注意:datediff,timestampdiff對日期差值的計算方式剛好是相反的
no3:concat()函式
1、功能:將多個字串連線成乙個字串。
2、語法:concat(str1, str2,...)
返回結果為連線引數產生的字串,如果有任何乙個引數為null,則返回值為null。
3、語法:concat(str1, seperator,str2,seperator,...)
返回結果為連線引數產生的字串並且有分隔符,如果有任何乙個引數為null,則返回值為null。
no4: concat_ws()函式
1、功能:和concat()一樣,將多個字串連線成乙個字串,但是可以一次性指定分隔符(concat_ws就是concat with separator)
2、語法:concat_ws(separator, str1, str2, ...)
說明:第乙個引數指定分隔符。需要注意的是分隔符不能為null,如果為null,則返回結果為null。
no5: group_concat()函式
1、功能:將group by產生的同乙個分組中的值連線起來,返回乙個字串結果。
2、語法:group_concat( [distinct] 要連線的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )
說明:通過使用distinct可以排除重複值;如果希望對結果中的值進行排序,可以使用order by子句;separator是乙個字串值,預設為乙個逗號。
no6:char_length(s)函式
1.功能:返回字串 s 的字元數
2.語法:
返回字串 runoob 的字元數
select char_length("runoob")as lengthofstring;
no7:field(s,s1,s2...)函式
1.功能:返回第乙個字串 s 在字串列表(s1,s2...)中的位置
2.語法:返回字串 c 在列表值中的位置:
select field("c","a","b","c","d","e");no8:find_in_set(s1,s2)函式
1.功能:返回在字串s2中與s1匹配的字串的位置
2.語法:
返回字串 c 在指定字串中的位置:
select find_in_set("c","a,b,c,d,e");no9:format(x,n)函式
1.功能:函式可以將數字 x 進行格式化 "#,###.##", 將 x 保留到小數點後 n 位,最後一位四捨五入。
2.語法:
格式化數字 "#,###.##" 形式:
select format(250500.5634,2);--輸出250,500.56no10:left(s,n)函式
1.功能:返回字串 s 的前 n 個字元
2.語法:
返回字串 runoob 中的前兩個字元:
select left('runoob',2)--runo11:mid(s,n,len)函式
1.功能:從字串 s 的 n 位置擷取長度為 len 的子字串,同 substring(s,n,len)
2.語法:
從字串 runoob 中的第 2 個位置擷取 3個 字元:
select mid("runoob",2,3)as extractstring;--uno
oracle中比較實用sql語句
檢視oracle 資料庫中本使用者下的所有表 select table name from user tables 檢視oracle 資料庫中所有使用者下的所有表 select user,table name from all tables 檢視oracle 資料庫中本使用者下的所有列 select...
css中比較實用的flex布局(1)
為什麼要用flex模型?布局的傳統解決方案,基於 盒狀模型 依賴 display屬性 position屬性 float屬性。它對於那些特殊布局非常不方便,比如,垂直居中 就不容易實現。正如上所說,flex布局在某些方面可以大大減輕複雜度,並且在一些比較難的布局中,運用起來十分方便。那麼現在問題來了,...
排序演算法中比較函式的運用
假如我們有乙個 如下,1,5 2,3 3,7 需要根據第二例排序。我們應該怎麼辦呢?這裡使用python作為範例,其他語言提供類似的泛型程式設計方法。對這個資料排序可以寫出如下 def customcmp a,b return cmp a 1 b 1 mylist a 1,5 b 2,3 c 3,7...