函數,大家肯定都瞭解,SQL支持利用函數來處理數據,函數一般是在數據上執行的,他給數據的轉換和處理提供了方便 。
但是需要說明,函數的移植性沒有SQL語句好,但是使用起來很有效,所以如果決定了使用函數,應該保證好代碼註釋,以便以後其他人都能知道所編寫的SQL代碼的意義。
part 1 文本處理函數
我們其實已經見過一個文本處理函數了,就是我們去掉空格的那個函數。
這裏我們再看一個例子:
SELECT vend_name, Upper(vend_name) AS vend_upcase FROM vendors ORDER BY vend_name;
這裏 vend_name 在原始列中本身是小寫的,現在由於我們使用了文本函數的原因,他將變成大寫。
這裏列出常用的文本處理函數:
函數 | 說明 |
---|---|
Left() | 返回串左邊的字符 |
Length() | 返回串的長度 |
Locate() | 找出串的一個字串 |
Lower() | 將串轉換爲小寫 |
LTrim() | 去掉串左邊的空格 |
Right() | 去掉串右邊的字符 |
RTrim() | 去掉串右邊的空格 |
Soundex() | 返回串的SOUNDEX值(自行百度) |
SubString() | 返回字串的字符 |
Upper() | 將串轉換爲大寫 |
。
part 2 日期和時間處理函數
一般來說,應用程序不適用用來存儲日期和時間的格式,因此日期和時間函數總是被用來讀取、統計和處理這些值。由於這個原因,日期和時間處理函數格外重要!
函數 | 說明 |
---|---|
AddDate() | 增加一個日期(天、周等) |
AddTime() | 增加一個時間(時、分等) |
CurDate() | 返回當前日期 |
CurTime() | 返回當前時間 |
Date() | 返回日期時間的日期部分 |
DateDiff() | 計算兩個日期之差 |
Date_Add() | 高度靈活的日期運算函數 |
Date_Format() | 返回一個格式化的日期或時間串 |
Day() | 返回一個日日期的天數部分 |
DayOfWeek() | 對於一個日期,返回對應的星期幾 |
Hour() | 返回一個時間的小時部分 |
Minute() | 返回一個時間的分鐘部分 |
Month() | 返回一個日期的月部分 |
Now() | 返回點當前的日期和時間 |
Second() | 返回一個時間的秒部分 |
Time | 返回一個日期時間的時間部分 |
Year() | 飯不會一個日期的年部分 |
我們一定要注意MySQL的日期格式,無論什麼時候制定一個日期,必須完成格式yyyy-mm-dd 比如 2005-09-04 。
還有,請遵行一個好的習慣,如果是日期,請使用Date()!:
SELECT cust_id, order_num FROM orders WHERE Date(order_date) = '2005-09-01';