注意:函數(shù)沒有SQL的可移植性強(qiáng)。相對來說,多數(shù)SQL語句是可移植的,在SQL實(shí)現(xiàn)之間有差異時(shí),這些差異通常不那么難處理。而函數(shù)的可移植性卻不強(qiáng)。幾乎每種主要的DBMS的實(shí)現(xiàn)都支持其他實(shí)現(xiàn)不支持的函數(shù),而且有時(shí)差異還很大。
文本處理函數(shù)
left 返回串左邊的字符
right 返回串右邊的字符
length 返回串的長度
locate 找出串的一個(gè)子串
lower 將串轉(zhuǎn)換為小寫
upper 將串轉(zhuǎn)換為大寫
ltrim 去掉串左邊的空格
rtrim 去掉串右邊的空格
trim 去掉串兩邊的空格
soundex 返回串的soundex值
substring 返回子串的字符
soundex是一個(gè)將任何文本串轉(zhuǎn)換為描述其語音表示的字母數(shù)字模式的算法。soundex考慮了類似的發(fā)音字符和音節(jié),使得能對串進(jìn)行發(fā)音比較而不是字母比較。
舉例:select cust_name, cust_contact from customers where soundex(cust_contact) = soundex('Y Lie');
\2.PNG
日期處理函數(shù)
adddate() 增加一個(gè)日期(天、周等)
addtime() 增加一個(gè)日期(天、周等)
curdate() 返回當(dāng)前日期
curtime() 返回當(dāng)前時(shí)間
date() 返回日期時(shí)間的日期部分
datediff() 計(jì)算兩個(gè)日期之差
date_add() 高度靈活的日期運(yùn)算函數(shù)
date_format() 返回一個(gè)格式化的日期或時(shí)間串
day() 返回一個(gè)日期的天數(shù)部分
dayofweek() 對于一個(gè)日期,返回對應(yīng)的星期幾
hour() 返回一個(gè)時(shí)間的小時(shí)部分
minute() 返回一個(gè)時(shí)間的分鐘部分
month() 返回一個(gè)時(shí)間的日期部分
now() 返回當(dāng)前日期和時(shí)間
second() 返回一個(gè)時(shí)間的秒部分
time() 返回一個(gè)日期時(shí)間的時(shí)間部分
year() 返回一個(gè)日期的年份部分
首先要注意的是mysql使用的日期格式。無論什么時(shí)候,日期必須為格式yyyy-mm-dd
。雖然其他的日期格式可能也行,但這是首選的日期格式,因?yàn)樗懦硕嗔x性。
舉例:select cust_id, order_num from orders where year(order_date) = 2005 and month(order_date) = 9;
說明:檢索出2005年9月下的所有訂單
數(shù)值處理函數(shù)
abs() 返回一個(gè)數(shù)的絕對值
cos() 返回一個(gè)角度的余弦
exp() 返回一個(gè)數(shù)的指數(shù)值
mod() 返回除操作的余數(shù)
pi() 返回圓周率
rand() 返回一個(gè)隨機(jī)數(shù)
sin() 返回一個(gè)角度的正弦
sqrt() 返回一個(gè)數(shù)的平方根
tan() 返回一個(gè)角度的正切
- MySQL必知必會