MySQL數據處理函數
數據處理函數
有時從數據庫表中獲取到的數據需要進行一些處理。如將小寫字母替換為相應的大寫字母。這個處理過程可以在客戶機上進行,也可以在數據庫上進行。數據庫上進行會更高效。數據庫中有相應的數據處理函數來處理這些數據,但是在SQL中使用特殊的數據處理函數會降低其可移植性。不同的DBMS系統,其數據處理函數不同。
大多數的SQL支持以下類型的函數
用於處理文本串的函數,如刪除、填充值、轉換大小寫;用於在數值數據上進行算術操作的函數;用於處理日期和時間值並從這些值中提取特殊成分,如兩個日期只差的函數;返回DBMS正在使用的特殊信息的系統函數,如返回用戶登錄,檢查版本;
文本處理函數
例子:將某一列字符轉換為大寫字符
常用文本處理函數
函數
說明
Left()
返回串左邊的字符
Length()
返回串的長度
Locate()
找出串的一個子串
Lower()
將串轉換為小寫
LTrim()
去掉串左邊的空格
Right()
返回串右邊的字符
RTrim()
去掉串右邊的空格
Soundex()
返回串的SOUNDEX值
SubString()
返回子串的字符
Upper()
將串轉換為大寫
Soundex()函數,找出發音類似的串,如由於拼寫錯誤,在表中記錄了發音相似的名字,這時如果使用LIKE或者其他的匹配搜索並不高效。使用SoundEX()會方便很多。
如下例子,真是名字為 Y.Lee,但是表中存放的名字為Y.Lie,如果使用匹配搜索會發現搜索不到,這時可以使用SoundEX()函數:
日期和時間處理函數
常用日期和時間處理函數
vcmRlcj0="1" width="800" cellspacing="1" cellpadding="1">
函數
說明
AddDate()
增加一個日期(天、周)
AddTime()
增加一個時間(時,分)
CurDate()
返回當前日期
CurTime()
返回當前時間
Date()
返回日期時間的日期部分
DateDiff()
計算兩個日期之差
Date_Add()
高度靈活的日期計算函數
Date_Format
返回一個格式化的日期或字符串
Day()
返回一個日期的天數部分
DayOfWeek()
對於一個日期返回對應的星期幾
Hour()
返回一個時間的小時部分
Minute()
返回一個時間的分鐘部分
Month()
返回一個時間的月份部分
Now()
返回當前日期
Second()
返回一個時間的秒部分
Time()
返回一個日期時間的時間部分
Year()
返回一個日期的年份部分
簡單的時間對比:
但是如果order_date後面跟的有時間,那麼上面的SQL語句將匹配不出來,因此我們可以使用日期函數,僅比較表中的日期,而忽略時間:
搜索出一個月的訂單;
但是有時不想去算這個月到底有多少天,則可以實現如下:
數值處理函數
數值處理函數僅處理數值數據,這些函數一般用於代數、三角或者幾何運算。
常用數值處理函數如下
函數
說明
Abs()
返回一個數的絕對值
Cos()
返回一個角度的余弦
Exp()
返回一個數的指數值
Mod()
返回除操作的余數
Pi()
返回圓周率
Rand()
返回一個隨機數
Sin()
返回一個角度的正弦
Sqrt()
返回一個數的平方根
Tan()
返回一個數的正切
下面是一個正切的例子: