MySQL函數(shù)
作者:嘻嘻碩
來源:SegmentFault 思否社區(qū)
MySQL函數(shù)
MySQL函數(shù)介紹
數(shù)學(xué)函數(shù) 字符串函數(shù) 時(shí)間函數(shù) 加密函數(shù)
數(shù)學(xué)函數(shù)
SELECT 。數(shù)學(xué)函數(shù)
ABS() 返回絕對(duì)值 如: (-100) 值 : 100
PI() 返回Π的圓規(guī)率 如 (不用寫) 值 : 3.1415926
CEIL() 向上取整數(shù) 如:(3.14) 值 :4 ( 注意第三個(gè)是i )FLOOR() 向下取整數(shù) 如:(3.14) 值 :3
POW(x,y) x的y次方 如(2,3) 值 :8
RAND() 隨機(jī)返回0-1值 如 :() 值 :0.018137501569592863
TRUNCATE(x,y) x保留y位小數(shù) 如 :(3.1415926,3) 值 :3.141
-- abs() 絕對(duì)值
SELECT ABS (-100);
-- pi() 返回圓 Π 規(guī)率
SELECT PI();
-- SQRT ()返回非負(fù)數(shù)x的二次方
SELECT SQRT(2);
-- POW 返回 x的 y 次乘方 需要
SELECT POW(2,10);
SELECT POWER(2,10)
-- CELL() or
SELECT CEIL(3.14); -- 向上取整數(shù)
-- floor()
SELECT FLOOR(3.14); -- 向下取整數(shù)
-- round() 四舍五入取整數(shù) 還可以保留小數(shù)
SELECT ROUND(3.4);
SELECT ROUND(3.5);
SELECT ROUND(3.7,2)
-- pow() x 的 y 次方
SELECT POW(2,3);
-- random 隨機(jī)0到1
SELECT RAND();
-- truncate() 保留小數(shù) 選擇
SELECT TRUNCATE(3.14159265758,3);
SELECT TRUNCATE(RAND()* 1000 ,3);字符串函數(shù)
字符串函數(shù)
LENGTH() 獲取長(zhǎng)度 如:('abc') 值為:3
CHAR_LENGTH 長(zhǎng)度 如:('add') 值為:3
UPPER() 字符串里英文全大寫 ('abcde') 值:ABCDE
LOWER() 字符串里英文全小寫 ()
TRIM() 去空格
REVERES() 反轉(zhuǎn)
REPLACE(str,len1,len2) len1代替len2
SUBSTRLNG(y,z) 截取y 到 z
-- 字符串函數(shù) -- RIGHT
SELECT LENGTH('fdsajfadslksdafk');
SELECT CHAR_LENGTH('fdsajfadslksdafk');
-- lower upper --全部變成大寫、小寫
SELECT UPPER('fdsajfadslksdafk');
SELECT LOWER('AFASDF');
-- trim() 去兩端空格
SELECT TRIM( ' abc ' )
SELECT TRIM(' afdjkadsfjkll asd;fasf ');
-- reverse() 反轉(zhuǎn)
SELECT REVERSE('abcdefg');
SELECT REVERSE(TRIM(' afdjkadsfjkll asd;fasf '));、
-- replace(str,len1,len2) len1 代替 len2
SELECT REPLACE('QQ群個(gè)個(gè)都是人才,說話又好聽' , '人才', '鬼才');
SELECT REPLACE('路演其是班草', '阿呆呆', '曹某某');
-- 截取 y 截取 z
SELECT SUBSTRING('監(jiān)x里個(gè)個(gè)都是人才,說話又好聽',4,5);日期函數(shù)
日期函數(shù)
SYSDATE() 系統(tǒng)日期+時(shí)間
CURDATE() 系統(tǒng)日期
CURETIME() 系統(tǒng)時(shí)間
WEEKDAY() 返回日期參數(shù) 注意時(shí)間:0-6需要+1
DAYNAME() 系統(tǒng)告訴你 今天星期幾YEAR() 查年
MONTH() 查月
DAY()查日
HOUR()查時(shí)
MINUTE() 查分
SECOUND() 查秒
WEEK() 查周
-- 日期函數(shù)
-- 系統(tǒng)當(dāng)前日期 sysdate()
SELECT SYSDATE() 系統(tǒng)當(dāng)前日期; -- 要 時(shí)分秒
-- (日期和時(shí)間)
SELECT CURDATE() 系統(tǒng)當(dāng)前日期; -- 當(dāng)前的日期
-- (日期)
SELECT CURTIME() 系統(tǒng)當(dāng)前時(shí)間 ;
-- (時(shí)間)
-- dayofweek() 今天時(shí)本周week -月month - 年year
SELECT DAYOFYEAR(SYSDATE()) 今天是這一年的第幾天;
SELECT DAYOFMONTH(SYSDATE()) 今天是這一月的第幾天;
SELECT DAYOFWEEK('2021-9-19') 今天是這一周的第幾天; -- 1-7
-- weekday
SELECT WEEKDAY(SYSDATE()) + 1 今天是星期幾; -- 0-6
-- dayname 星期幾
SELECT DAYNAME('2001-9-18')
-- 年月日時(shí)分秒 year month day hour minute second
SELECT YEAR(SYSDATE()) 年;
SELECT MONTH(SYSDATE()) 月;
SELECT DAY(SYSDATE()) 日;
SELECT HOUR(SYSDATE()) 時(shí);
SELECT MINUTE(SYSDATE()) 分;
SELECT SECOND(SYSDATE()) 秒;
-- 周
SELECT WEEK(SYSDATE()) 周;
-- adddate(date,interval expr type) 添加時(shí)間后的日期
-- 假設(shè)你還有50年壽命,50年后這個(gè)時(shí)間是多少
SELECT ADDDATE(NOW(),INTERVAL 50 YEAR);
SELECT ADDDATE(NOW(), INTERVAL 50 SECOND);
-- datediff(date1, date2) 兩個(gè)時(shí)間的間隔
SELECT ABS(DATEDIFF('2005-8-26','2021-9-23')); -- 1984 - 3 - 24
-- 假設(shè)路演其出生時(shí)間2005年7月15 請(qǐng)問他到選擇活了多少分鐘
-- 假設(shè)他還有80年的壽命 80年后是多久
SELECT ABS(DATEDIFF('2005-7-15',SYSDATE()) ) * 1444 ;
SELECT ADDDATE(NOW(), INTERVAL 80 YEAR);加密函數(shù)
PASSWORD(str) 加密后不可以逆轉(zhuǎn)
MD5(str) 加密后可以逆轉(zhuǎn) 注:以前不許
CHARSET() 查看mysel 版本
-- 加密函數(shù)
SELECT PASSWORD('123456') 加密后不可以逆轉(zhuǎn);
SELECT PASSWORD('666666') 加密后不可以逆轉(zhuǎn);
-- MD5
SELECT PASSWORD('123456') 加密后不可以逆轉(zhuǎn) MD5('123456') 加密后可以逆轉(zhuǎn)
-- 版本查看
SELECT VERSION();
SELECT CHARSET('123456');
-- md5 加密
-- 雪花推特算法

