Skip to main content

Function

String Function 字串函式

  • 專門用於處理字串與計算
  • 索引位置皆為1(第1個字元位置的索引是1)

mysql-function1 mysql-function2

Math Function數學函式

  • 提供數學上所需要的處理與計算
SELECT round(2.5458,2) #四捨五入到小數點2位數
SELECT truncate(2.5458,2) #保留小數到第2個位數,其餘去除
SELECT abs(1.5); #絕對值2
SELECT ceil(1.37); #最大整數
SELECT floor(2.75); #最小整數
SELECT pi();
SELECT pow(2,3); #2的3次方
SELECT radians(60); #角度轉成弧度
SELECT degrees(1); #弧度轉成角度

mysql-function3

Datetime Function日期時間函式

  • 用於日期時間的處理計算與格式化
SELECT adddate('2022-12-01',interval 1 day); #加1天
SELECT adddate('2022-12-01 23:59:59',interval 1 second); #加1秒
SELELCT date_format(publishdate,'%y-%m-%d') as pubDate FROM book; #格式化日期
SELECT datediff(publishdate,'2022-12-01'); #兩個日期相差的天數
SELECT dayofyear('2020-12-31'); #當年的第幾日
SELECT dayofmonth('2020-12-31'); #當月的第幾日
SELECT dayofweek('2020-12-31'); #當星期的第幾日(1=星期日,2星期一..,7星期六)
SELECT first_day('2020-12-15'); #當月的第一日
SELECT last_day('2020-12-15'); #當月的最後一日
SELECT week('2020-12-15'); #當年的第幾周
SELECT year('2020-12-31 12:59:45'); #提取年
SELECT month('2020-12-31 12:59:45'); #提取月
SELECT day('2020-12-31 12:59:45'); #提取日
SELECT hour('2020-12-31 12:59:45'); #提取小時
SELECT minute('2020-12-31 12:59:45'); #提取分鐘
SELECT second('2020-12-31 12:59:45'); #提取秒數
SELECT now() #提取現在時間

mysql-function4

Conversion Function類型轉換函式

  • 用於不同類型資間轉換
SELECT convert('20201231',date); #轉換成日期 2020-12-31
SELECT convert('100501',time); #轉換成時間 10:50:01
SELECT convert('123.456',char); #轉換成字元 123.456
SELECT convert('5-10',signed); #轉換成可為正負號的數字 -5

Flow Function流程控制函式

  • 利用條件式的成立與否決定流程走向
SELECT bookname,price, if(prince>1000,'expensive','cheap') as tag from book; #如果唯true回傳第一個,false則回傳第二個
SELECT ifnull(null,'mary'); #如果null回傳第一個,否則回傳第二個

System Function系統資訊函式

  • 可以取得系統相關資訊
SELECT bookname, charset(bookname) FROM book; #回傳str的字元集
SELECT database(); #回傳資料庫名稱
SELECT user(); #回傳當下使用者帳號與主機名稱
SELECT version(); #回傳資料庫版本

Aggregate Function聚集函式

  • 是一種提供簡易統計功能的函示
SELECT COUNT(*) FROM STUDENT;
SELECT AVG(test_score) FROM STUDENT;
SELECT MAX(test_score) FROM STUDENT;
SELECT MIN(test_score) FROM STUDENT;
SELECT SUM(test_score) FROM STUDENT;

mysql-function5