1. 程式人生 > >mysql常用的數學函式和日期函式

mysql常用的數學函式和日期函式

數學函式

   

#round 四捨五入

SELECT ROUND(-1.55);  結果為:-2

SELECT ROUND(1.567,2); 結果為:1.57。後面的2為保留2位小數

 

 

#ceil 向上取整,返回>=該引數的最小整數

 

SELECT CEIL(-1.02);  結果為:-1

 

#floor 向下取整,返回<=該引數的最大整數

SELECT FLOOR(-9.99);  結果為:-10

 

#truncate 截斷

 

SELECT TRUNCATE(1.69999,1); 結果為:1.6。後面的1表示擷取小數點後一位。

 

#mod取餘

/*

mod(a,b) :  a-a/b*b

 

mod(-10,-3):-10- (-10)/(-3)*(-3)=-1

*/

SELECT MOD(10,-3);  結果為:1。計算規則為:10-10/(-3) *( -3),結果為1

SELECT 10%3;   結果為:1。

 

日期函式

#now 返回當前系統日期+時間

SELECT NOW();  結果為:2018-11-15 12:23:32

 

#curdate 返回當前系統日期,不包含時間

SELECT CURDATE();  結果為:2018-11-15

 

#curtime 返回當前時間,不包含日期

SELECT CURTIME(); 結果為:12:24:10

 

 

#可以獲取指定的部分,年、月、日、小時、分鐘、秒

SELECT YEAR(NOW()) 年; 結果為:2018

SELECT YEAR('1998-1-1') 年; 結果為:1998

 

#實際表舉例

SELECT  YEAR(hiredate) 年 FROM employees;

 

SELECT MONTH(NOW()) 月; 結果為:11。代表的是當前月份

SELECT MONTHNAME(NOW()) 月; 結果為:November。英文狀態的當前月份。

 

 

#str_to_date 將字元通過指定的格式轉換成日期

 

SELECT STR_TO_DATE('1998-3-2','%Y-%c-%d') AS out_put; 

結果為:1998-03-02

 

#(實際表舉例)查詢入職日期為1992--4-3的員工資訊

SELECT * FROM employees WHERE hiredate = '1992-4-3';

 

SELECT * FROM employees WHERE hiredate = STR_TO_DATE('4-3 1992','%c-%d %Y');

 

 

#date_format 將日期轉換成字元

 

SELECT DATE_FORMAT(NOW(),'%y年%m月%d日') AS out_put;

結果為:18年11月15日

 

#(實際表舉例)查詢有獎金的員工名和入職日期(xx月/xx日 xx年)

SELECT last_name,DATE_FORMAT(hiredate,'%m月/%d日 %y年') 入職日期

FROM employees

WHERE commission_pct IS NOT NULL;