函数是一段可以直接被另一端程序调用的代码或程序
常用的有:

常用的字符串函数:

示例:
SELECT CONCAT('hello','mysql')

-- LOWER(str)
SELECT LOWER('HEllo')

-- UPPER(str)
SELECT UPPER('HEllo');

第一个为需要填充的数据,第二个为长度,第三个为填充的字符
-- LPAD(str,len,padstr)
SELECT LPAD('01',5,'-')

填充到长度为5
-- RPAD(str,len,padstr)
SELECT RPAD('01',5,'-')

去除头部和尾部的空格
-- TRIM([remstr FROM] str)
SELECT TRIM(' hello mysql ');

第一个参数为截取的字符串,第二个为从哪个位置开始,第三个为截取多长
-- SUBSTR(str FROM pos FOR len)
SELECT SUBSTR('hello mysql',1,5);

案例:



-- CEIL(X)
SELECT CEIL(1.5);

-- FLOOR(X)
SELECT FLOOR(1.9);

相当于取余
-- MOD(N,M)
SELECT MOD(6,3);

-- RAND()
SELECT RAND();

四舍五入,保留指定位数的小数
-- ROUND(X)
SELECT ROUND(2.345,2);

案例:
产生6位随机数:
由于可能产生5位,所以要补0


-- CURDATE()
SELECT CURDATE();

-- CURRENT_TIME
SELECT CURRENT_TIME

-- NOW()
SELECT NOW();

-- YEAR(date)
SELECT YEAR(NOW());

-- MONTH(date)
SELECT MONTH(NOW());

-- DAY(date)
SELECT DAY(NOW());

查询当前时间往后推迟70天:
当前日期为:2022/8/26
推迟不同的年月日 修改 70后面的单位 year、 mounth 、 day
-- DATE_ADD(date,INTERVAL expr unit)
SELECT DATE_ADD(NOW(),INTERVAL 70 DAY)

一般大的放前面,小的日期放后面,否则会出现负数
--DATEDIFF(expr1,expr2)
SELECT DATEDIFF('2022-8-26','2022-9-26');

案例:


