MySQL常用的函數(shù)

在平時寫項目的時候不免要寫sql,在每次用到函數(shù)的時候就去百度,然后就粘貼復(fù)制,對自己根本沒有記住,現(xiàn)在就將常用的MySQL函數(shù)整理一下,供自己以后查看。

一、時間相關(guān)函數(shù)

1.日期格式化

DATE_FORMAT(time,'%Y-%m-%d %H:%i:%s')

DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s') data1,
DATE_FORMAT(NOW(),'%Y-%m-%d') data2,
DATE_FORMAT(NOW(),'%H:%i:%s') data3
格式化.png

2.兩個日期相減

//減數(shù)在前,被減數(shù)在后
time_to_sec(timediff(t2, t1)) diff1,    結(jié)果為秒
//被減數(shù)在前,減數(shù)在后
timestampdiff(second, t1, t2) diff2,     結(jié)果為秒
unix_timestamp(t2) -unix_timestamp(t1) diff3    結(jié)果為秒

select now(),date_add(now(),INTERVAL 1 MINUTE) date,
-- 減數(shù)在前,被減數(shù)在后
time_to_sec(timediff(date_add(now(),INTERVAL 1 MINUTE),now() )) diff1,
 -- 這里是相反的,被減數(shù)在前,減數(shù)在后
timestampdiff(second,now(),date_add(now(),INTERVAL 1 MINUTE)) diff2,
unix_timestamp(date_add(now(),INTERVAL 1 MINUTE)) -unix_timestamp(now()) diff3 
兩個時間相減.png

3.給指定日期增加指定的時間間隔
DATE_ADD(d,INTERVAL expr type)

select now(),
date_add(now(),INTERVAL 1 DAY) DAY, -- 增加天數(shù)
date_add(now(),INTERVAL 1 MINUTE) MINUTE, -- 增加分鐘
date_add(now(),INTERVAL 1 SECOND) SECOND, -- 增加秒
date_add(now(),INTERVAL 1 HOUR) HOUR, -- 增加小時數(shù)
date_add(now(),INTERVAL 1 MONTH) MONTH, -- 增加月份
date_add(now(),INTERVAL 1 YEAR) YEAR, -- 增加年份
date_add(now(),INTERVAL 1 WEEK) WEEK -- 增加星期
增加指定時間間隔.png

4.給指定日期減去指定的時間間隔

DATE_SUB(date,INTERVAL expr type)

 select now(),
date_sub(now(),INTERVAL 1 DAY) DAY, -- 減去天數(shù)
date_sub(now(),INTERVAL 1 MINUTE) MINUTE, -- 減去分鐘數(shù)
date_sub(now(),INTERVAL 1 SECOND) SECOND, -- 減去秒數(shù)
date_sub(now(),INTERVAL 1 HOUR) HOUR, -- 減去小時
date_sub(now(),INTERVAL 1 MONTH) MONTH, -- 減去月份
date_sub(now(),INTERVAL 1 YEAR) YEAR, -- 減去年份
date_sub(now(),INTERVAL 1 WEEK) WEEK -- 減去星期
減去指定時間間隔.png

二、其他常用的函數(shù)

1.判斷表達式是否為null

[IFNULL(v1,v2)]      如果 v1 的值不為 NULL,則返回 v1,否則返回 v2

SELECT IFNULL(null,'Hello Word')   ->Hello Word

2.MySQL中if判斷

IF(expr,v1,v2)     如果表達式 expr 成立,返回結(jié)果 v1;否則,返回結(jié)果 v2

SELECT IF(1 > 0,'正確','錯誤')    ->正確

3.MySQL中的switch,case的使用

CASE expression
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
   ...
    WHEN conditionN THEN resultN
    ELSE result
END

CASE 表示函數(shù)開始,END 表示函數(shù)結(jié)束。如果 condition1 成立,則返回 result1, 
如果 condition2 成立,則返回 result2,當(dāng)全部不成立則返回 result,
而當(dāng)有一個成立之后,后面的就不執(zhí)行了。  

SELECT CASE WHEN 1=1 THEN 1 ELSE 0 END     ->1

SELECT CASE WHEN 1=0 THEN 1 ELSE 0 END     ->0

4.GROUP_CONCAT的使用方法

列轉(zhuǎn)行函數(shù)
group_concat(字段)  顯示默認分隔符“,”
group_concat(字段 separator ';') 自定義分隔符“;”

SELECT GROUP_CONCAT(user_name SEPARATOR  ';')  FROM app_user

SELECT GROUP_CONCAT(user_name )  FROM app_user

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容