-- 字符串的函数
-- 转换为小写
SELECT LOWER('SUNHAO')
-- 转化为大写
SELECT UPPER('sunhao')
-- 首字母大写
-- 不知道
-- 连接两个字符串
SELECT CONCAT('hello','world')
-- 截取字符串
SELECT SUBSTR('helloword',6,1)
-- 计算字符串长度
SELECT LENGTH('helloworld')
-- 给出字符的索引
SELECT INSTR('helloworld','w')
-- 用*在字符串左边补全字符串,到固定长度(20)
SELECT LPAD('hp',20,'*')
-- 用*在字符串右边补全字符串,到固定长度(20)
SELECT RPAD('hp',20,'*')
-- 数字函数
-- 四舍五入,保留固定位(两位)小数
SELECT ROUND(10.2366666,2)
-- 数字截取,保留固定位(两位)小数
SELECT TRUNCATE(10.2366666,2)
-- 进一取整,只要小数有,就进一
SELECT CEIL(10.23)
-- 舍一取整,不管小数,只取整数
-- 取整数
SELECT FLOOR(10/6)
-- 取余数
SELECT MOD(10,6)
-- 取绝对值
SELECT ABS(-10)
-- (0,1)随机数
SELECT RAND()
-- 返回数字的符号,负数、0、正数分别返回-1,0,1
SELECT SIGN(-10),SIGN(0),SIGN(10)
-- 返回圆周率
SELECT PI()
-- 返回x的y次方,返回e的x次方
SELECT POW(2,3),POWER(2,3),EXP(3)
-- 返回x的平方根
SELECT SQRT(4)
-- 返回自然对数(以e为底的对数),返回10为底的对数,返回2为底的对数
SELECT log(EXP(2)),LOG10(100),LOG2(4)
-- 三角函数 ,其中X是弧度表示SIN(X),ASIN(X),COS(X),ACOS(X),TAN(X),ATAN(X)/ATAN2(Y,X),COT(X)
-- 角度转弧度 RADIANS(X),弧度转角度 DEGREES(X)
SELECT RADIANS(30),DEGREES(0.5235987755982988)
SELECT SIN(RADIANS(30)),COS(RADIANS(60)),TAN(RADIANS(45))
-- 日期函数(https://www.cnblogs.com/i-tao/p/11419900.html)
-- 返回两个日期之间相差的天数,第一个参数-第二个参数 即2020-01-30减去2020-01-01
SELECT DATEDIFF('2020-01-30','2020-01-01')
-- 将指定的时间间隔值加到时间上,默认添加的是天数 2020-01-30日30天后是哪天
SELECT ADDDATE('2020-01-30',30)
-- 将指定时间(小时)加到时间上,2020年1月1日10点后一个小时是什么时间
SELECT ADDTIME('2020-01-01 10:00:00','1:00:00')
SELECT ADDTIME('10:00:00','1:00:00')
-- 返回指定日期是星期几 Excel中的weekday函数
SELECT DAYNAME('2020-06-01')
-- 返回指定日期是这个月第几天 Excel中的day函数
SELECT DAYOFMONTH('2020-06-01')
-- 返回指定日期是这年的第几天
SELECT DAYOFYEAR('2020-06-01')
-- 返回指定日期是这周的第几天(星期天是第一天)
SELECT DAYOFweek('2020-06-01')
-- 返回当月的最后一天
SELECT LAST_DAY('2020-06-01')
-- 返回日期减少多少个单位时间
SELECT DATE_SUB('2020-06-01',INTERVAL 2 DAY)
SELECT DATE_SUB('2020-06-01',INTERVAL 2 month)
SELECT DATE_SUB('2020-06-01',INTERVAL 2 year)
SELECT DATE_SUB('2020-06-01',INTERVAL 2 HOUR)
SELECT DATE_SUB('2020-06-01',INTERVAL 2 SECOND)
SELECT DATE_SUB('2020-06-01',INTERVAL 2 MINUTE)
-- 返回日期增加多少个单位时间
SELECT DATE_ADD('2020-06-01',INTERVAL 2 DAY)
SELECT DATE_ADD('2020-06-01',INTERVAL 2 month)
SELECT DATE_ADD('2020-06-01',INTERVAL 2 year)
SELECT DATE_ADD('2020-06-01',INTERVAL 2 HOUR)
SELECT DATE_ADD('2020-06-01',INTERVAL 2 SECOND)
SELECT DATE_ADD('2020-06-01',INTERVAL 2 MINUTE)
-- SELECT TIMESTAMPDIFF(类型,开始时间,结束时间)
-- 相差的秒数:
SELECT TIMESTAMPDIFF(SECOND,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
-- 相差的分钟数:
SELECT TIMESTAMPDIFF(MINUTE,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
-- 相差的小时数:
SELECT TIMESTAMPDIFF(HOUR,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
-- 相差的天数:
SELECT TIMESTAMPDIFF(DAY,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
-- 相差的周数:
SELECT TIMESTAMPDIFF(WEEK,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
-- 相差的季度数:
SELECT TIMESTAMPDIFF(QUARTER,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
-- 相差的月数:
SELECT TIMESTAMPDIFF(MONTH,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
-- 相差的年数:
SELECT TIMESTAMPDIFF(YEAR,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
-- 转换函数(数值型数据类型和日期型数据类型都可以转换成字符型)
-- CAST()、CONVERT()这两个函数只对BINARY、CHAR、DATE、DATETIME、TIME、SIGNED INTEGER、UNSIGNED INTEGER。
-- sigeed 将varchar转换成int
SELECT CONVERT('231',signed)
SELECT CAST('231' as signed)
SELECT DATE_FORMAT('2020-01-01 19:00:00','YYYY-MM-DD hh24:mm:ss')
-- 条件判断函数
-- IF(条件,x,y):如果条件正确,则返回x,否则返回y
SELECT if(1>0,'正确','错误')
-- IFNULL(x,y):如果x不是null,则返回x,如果x是null则返回y
SELECT IFNULL(null,'helloworld')
-- CASE case_value
-- WHEN when_value THEN
-- statement_list
-- ELSE
-- statement_list
-- END CASE;
SELECT CASE
WHEN 1>2
THEN '错误'
ELSE '正确'
END;