mysql 常用函数总结

复制代码
-- 一、基本函数
# 求绝对值
SELECT ABS(id) FROM school;
SELECT ABS(-5); #5

# 开根号
SELECT SQRT(25),SQRT(-5),SQRT(0),SQRT(8); #5,null,0,2.8284271247461903

# 求余数
SELECT MOD(10,3); #1

# 向上取整 
SELECT CEIL(2.5),CEILING(3.5);#3,4 两函数作用相同

# 向下取整
SELECT FLOOR(2.8);# 2

# 四舍五入
SELECT ROUND(2.2),ROUND(2.5); # 2,3

# 生成0~1之间的随机数
SELECT RAND();

-- 实例1 生成0~100之间的随机数
SELECT CEIL(RAND()*100);

# 判断是正数还是负数还是0
SELECT SIGN(6),SIGN(0),SIGN(-5); # 1 0 -1

# 求n次方
SELECT POW(5,-2),POW(10,3); # 0.04,1000

# SIN(X) 正弦,COS(X) 余弦 TAN(X) 正切

-- 二、字符串函数

# 字节长度
SELECT LENGTH(`full_name`) FROM school; # 字节长度21 一个中文3字节
# 字符串长度
SELECT CHAR_LENGTH(`full_name`) FROM school; # 字符串长度 7

# 字符串拼接
SELECT CONCAT("hello"," world"); #hello world

# 字符串替换
-- 位置替换
SELECT INSERT('FootBall',2,4,'Play'); #FPlayall 从第二个字符开始(起始位置为1),替换4个字符为Play 
SELECT INSERT('FootBall',-1,4,'Play'),INSERT('FootBall',10,4,'Play'); #FootBall,FootBall 注: -1和 10超出字符串长度 原样返回
SELECT INSERT('FootBall',3,20,'Play'); # FoPlay 从第三个字符开始(起始位置为1) 取20个字符替换为 Play
-- 字符替换
SELECT REPLACE('FootBall','o','e'); # FeetBall


# 大小写转换
SELECT UPPER('hello world'); # HELLO WORLD
SELECT LOWER('HELLO WORLD'); # hello world

# 去除字符串两边的空格
SELECT TRIM(' a b c ');

#从左侧截取字符串
SELECT LEFT('myfunc',2); #my
#从右侧截取字符串
SELECT RIGHT('myfunc',4); #func 

# 按位置截取
SELECT SUBSTRING('computer',3); # mputer 从第三个字符开始(起始位置为1) 截取之后的全部字符串
SELECT SUBSTRING('computer',3,3); # mpu 从第三个字符开始(起始位置为1) 截取3个字符串
SELECT SUBSTRING('computer',-5); # puter 从倒数第五个字符开始 截取之后的全部字符串
SELECT SUBSTRING('computer',-5,3); #put 从倒数第五个字符开始  截取3个字符串

# 字符串反转
SELECT REVERSE('hello world'); # dlrow olleh

-- 三、时间日期函数

# 返回当前日期
SELECT CURRENT_DATE(),CURDATE(); # 2024-12-04,2024-12-04
# 返回当前时间
SELECT CURRENT_TIME(),CURTIME(); # 16:14:06
# 返回当前日期和时间
SELECT NOW(),SYSDATE(); # 2024-12-04 16:14:44
# 返回时间戳 秒
SELECT UNIX_TIMESTAMP(); # 1733300120
SELECT UNIX_TIMESTAMP('2024-12-4 00:00:00'); # 1733241600
# 格式化时间 参数是时间戳
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP()); # 2024-12-04 16:19:53
SELECT FROM_UNIXTIME(1733241600); #2024-12-04 00:00:00.00
# 返回日期中的月份
SELECT MONTH('2017-12-15'); # 12
SELECT MONTH('2017-12-15 16:14:44'); # 12
# 返回月份的英文名称
SELECT MONTHNAME('2017-12-15'); # December
SELECT MONTHNAME('2017-12-15 16:14:44'); # December
# 返回日期中的星期几
SELECT DAYNAME('2024-12-4'); # Wednesday
SELECT DAYOFWEEK('2024-12-4'); # 4 星期日为1 所以星期三就是4
SELECT WEEKDAY('2024-12-04'); # 2 星期一为0
# 返回一年中的第几周,注意下第二个参数
SELECT WEEK('2024-1-4'); # 0
# 返回一年中的第几天
SELECT DAYOFYEAR('2024-1-4'); # 4
# 返回日期中是当前月中的第几天
SELECT DAYOFMONTH('2024-12-4'); # 4
# 获取年份
SELECT YEAR('1969-1-4'); # 2024 
# 将时间转换成秒
SELECT TIME_TO_SEC("01:02:10"); # 3730
# 将秒转换成时间与TIME_TO_SEC函数相反
SELECT SEC_TO_TIME(3730); # 01:02:10

# 日期时间累加 DATE_ADD 和 ADDDATE 函数作用相同
SELECT DATE_ADD('2024-12-03 23:59:59', INTERVAL 1 SECOND); # 2024-12-04 00:00:00 加1秒数
SELECT ADDDATE('2024-12-03 23:59:59', INTERVAL '1:2' MINUTE_SECOND); # 2024-12-04 00:01:01 加一分零一秒
SELECT ADDDATE('2024-12-03 23:59:59', INTERVAL 1 DAY); # 2024-12-04 23:59:59 加一天
SELECT DATE_ADD('2024-12-03 23:59:59', INTERVAL '1 00:00:01' DAY_SECOND); # 2024-12-05 00:00:00 加一天零一秒

# DATE_SUB,SUBDATE 与时间累加相反

# 时间累加
SELECT ADDTIME('2024-12-03 23:59:59','00:01:01'); # 2024-12-04 00:01:00 加一分零一秒
SELECT ADDTIME('2024-12-03 23:59:59','1'); # 2024-12-04 00:00:00 加一秒
SELECT ADDTIME('2024-12-03 23:59:59','1 00:01:01'); # 2024-12-05 00:01:00 加一天零一秒

# SUBTIME 和 ADDTIME 相反

# 计算日期差
SELECT DATEDIFF('2024-12-04','2024-12-03'); # 1
SELECT DATEDIFF('2024-12-04','2024-11-25'); # 9

# DATE_FORMAT 格式化日期 详细看参数比较多

# 聚合函数 MAXMINCOUNTSUMAVG

# if 语句
SELECT IF(1<2,'yes','no') as res;

# IFNULL 设置查询结果的默认值
SELECT `id`,`name`,IFNULL(`full_name`,'未填写') AS `full_name` FROM school

# CASE 语句
SELECT CASE WEEKDAY(NOW())
    WHEN 0 THEN '星期一'
  WHEN 1 THEN '星期二'
  WHEN 2 THEN '星期三'
  WHEN 3 THEN '星期四'
  WHEN 4 THEN '星期五'
  WHEN 5 THEN '星期六'
    ELSE
        '星期日'
END AS `week`;
复制代码

 

posted @   龍飛鳯舞  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示