22. database函數數據庫
格式:database()函數
功能:返回當前數據庫的名字ui
示例:編碼
21. current_user函數spa
格式:current_user()code
功能:返回當前鏈接的帳號名ci
返回值:'user_name'@'host_name'字符串
等價:CURRENT_USERit
示例:ast
20. to_days函數
格式:to_days(date)
功能:返回日期對應的天數,計算從0000-00-00開始通過的天數
參數:date類型的日期值,MySQL會自動將兩位數的年份轉換成四位數的年份,即「95-08-25」和「950825」等價於「1995-08-25」
說明:date不可爲1582年以前的日期
示例:
19. current_date函數
格式:current_date()
功能:返回當前日期
返回值:字符串上下文中返回"YYYY-MM-DD";數字上下文中返回"YYYYMMDD"
等價:CURDATE() CURRENT_DATE
示例:
18. floor函數
格式:floor(X)
功能:返回不大於X的最大整數
示例:
17. rand函數
格式:rand(N)
功能:返回一個隨機浮點數,範圍 [0, 1)
參數:N爲隨機數種子,可省略
◇ 若N爲常量,則在執行前只初始化一次隨機數種子
◇ 若N爲很是量,例如字段名,則每次調用rand()時都用相應的值初始化一次種子
說明:
① 若N相同,則生成的隨機數都同樣
② 要獲取 [i, j)之間的一個隨機整數,可使用floor(i + rand() * (j-i))
③ 當rand()用在where子句時,每行計算一次
示例:
獲取 [7, 12)的隨機整數
16. right函數
格式:right(str, len)
功能:返回字符串str右側前len個字符
示例:
15. left函數
格式:left(str, len)
功能:返回字符串str左側前len個字符
示例:
14. convert函數
格式:convert(str USING encode)
功能:將字符串「str」轉換爲「encode」編碼
參數:「encode」爲MySQL對應字符集的名字
示例:select convert("abc" USING utf8);
格式:convert(expr, type)
功能:將expr轉換爲type類型的結果
示例:select convert(1/3, decimal(4, 3));
13. cast函數
等同於convert(expr, type)
12. date_add函數
格式:date_add(time, INTERVAL expr unit)
功能:執行日期計算
參數:
time 起始時間,可爲date或datetime類型
expr 間隔時間,將被加到time
unit 指定expr的單位
返回值:
① 如下狀況,返回NULL
◇ 「time」爲非法日期,如「2006-07-00」
◇ 「time」格式非法,如「201704-30」
② 如下狀況,返回datetime
◇ 「time」爲datetime
◇ 「time」爲date,「unit」使用了「HOURS」「MINUTES」或「SECONDS」
③ 其它狀況下,返回date
注意事項:
① 若expr對於unit來講過短,則高位補0
即 INTERVAL "01:45" MINUTE_MICROSECOND 等價於「00:01.000045」 0分1秒45微秒
② expr被視做字符串,所以爲expr指定非字符串值時,須要當心
即 INTERVAL 6/4 HOUR_MINUTE 等價於 INTERVAL 1.5000 HOUR_MINUTE,即1小時5000分鐘
解決辦法:使用CAST進行轉換,INTERVAL CAST(6/4 AS DECIMAL(3, 1)) HOUR_MINUTE
說明:
月份自動轉換,即date_add("2017-04-29", INTERVAL 2 DAY),結果爲"2017-05-01"
等價
等同於「time」+ INTERVAL expr unit
INTERVAL expr unit 能夠和「time」互換位置,即:INTERVAL expr unit +「time」
unit取值和expr格式,對應關係
11. date_sub函數
參考date_add
等價
等同於「time」- INTERVAL expr unit
INTERVAL expr unit不能放在減號左側,由於從時間區間減值,沒有意義
10. unhex函數
格式:unhex(str)
功能:將十六進制字符串還原爲原始數據
說明:對於字符串參數str,unhex(str)將參數中的每對字符當作兩個十六進制數,並將其轉換爲由該數表示的字節。返回值是二進制字符串
返回值:成功返回二進制字符串;若參數中有非法字符,則返回NULL
示例:
9. hex函數
格式:hex(binary_data)
功能:使用十六進制字符串來表示二進制數據
說明:hex將binary_data中的每一個字節,都轉化成對應的兩位十六進制值的字符串形式
參數:binary_data可爲任意類型的數據,如字符串和數字
返回值:返回十六進制字符串
示例:
由於字符"a"對應的十六進制值爲0x61,"b"=0x62,"c"=63,故字符串"abc"的十六進制字符串爲"616263"
由於整數255的十六進制值爲0xff,故整數255的十六進制字符串爲"FF"
由於二進制數b'01101101'的十六進制值爲0x6d,故二進制數b'01101101'的十六進制字符串爲"6D"
由於十六進制數x'2bfe'的十六進制值爲0x2BFE,故十六進制數x'2bfe'的十六進制字符串爲"2BFE"
8. conv函數
格式:conv(N, from_base, to_base)
功能:數字的進制轉換
參數:
N 原始數字,可爲整數或內容爲整數的字符串
from_base 原進制
to_base 目標進制
返回值:成功返回轉化後結果的字符串表示,失敗返回NULL
示例:
7. length函數
格式:length(arg)
功能:返回字符串佔用的字節數
參數:參數可爲字符串字面值,或字符串類型的字段名
6. char_length函數
格式:char_length(arg)
功能:返回字符串中的字符個數
參數:參數可爲字符串字面值,或字符串類型的字段名
5. bit_length函數
格式:bit_length(arg)
功能:返回字符串佔用的位數
參數:參數可爲字符串字面值,或字符串類型的字段名
4. max函數
格式:max(FieldName)
功能:獲取字段的最大值
示例:
3. min函數
格式:min(FieldName)
功能:獲取字段的最小值
示例:
2. replace函數
格式:replace(str, from, to)
功能:將字符串str中的全部子串from替換爲子串to
例如:
獲取tb_user_device表中的guid, chns字段,同時將chns字段中的子串"nm":""刪除
select guid, replace(chns, concat('"nm":""'), '') from tb_user_device;
1. concat函數
格式:concat(str1, str2...)
功能:返回由各參數首尾鏈接而成的字符串,參數可爲字段名
例如:
查詢chns字段包含「"nm":"xxx」的記錄數,「xxx」爲同一記錄中guid的字段值
select count(*) from tb_user_device where chns like concat('%"nm":"', guid, '%');