当前位置: 首页 > news >正文

MySQL常用函数集锦 --- 字符串|数值|日期|流程函数总结

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【MySQL学习专栏】🎈
本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌
在这里插入图片描述

目录

  • 一、字符串函数
  • 二、数值函数
    • 小练习
  • 三、日期函数
  • 四、流程函数

一、字符串函数

关于字符串函数请看此文章:字符串函数

二、数值函数

下面来介绍5个数值函数,请看:

函数作用
CEIL(x)向上取整
FLOOR(x)向下取整
MOD(x,y)返回x/y的模
RAND()返回0到1内的随机数
ROUND(x,y)求参数x的四舍五入的值,并保留y位小数

ceil(x):向上取整。
举例:select ceil(1.1);
演示结果:
在这里插入图片描述

MOD(x,y):返回x/y的模
举例:select mod(9,2);
演示结果:
在这里插入图片描述

rand():返回0到1内的随机数
举例:select rand();
演示结果如下:
在这里插入图片描述

round(x,y):求参数x的四舍五入的值,并保留y位小数。
举例:round(8.354,3);
演示结果如下:
在这里插入图片描述

小练习

根据数据库语句生成一个6位数的随机验证码:

select lpad(round(rand()*1000000,0),6,'0');

*解释:rand()1000000会生成一个随机数,加上round后保证生成的数是一个整数(此时并不稳定,因为有时生成的数是一个五位数),所以需要加航lpad()函数来进行前补0或者后补0。

三、日期函数

下面是本文的日期函数,请看:

函数功能
CURDATE()返回当前的日期
CURTIME()返回当前的时间
NOW()返回当前的日期和时间
YEAR(date)获取指定date的年份
MONTH(date)获取指定date的月份
DAY(date)获取指定date的日期
DATE_ADD(date,INTERVAL expr type)返回一个日期/时间值加上一个时间间隔expr后的时间值
DATEDIFF(date1,date2)返回起始时间date1和和结束时间之间的date2

curdate():返回当前的日期
举例:select curdate();
演示结果: 在这里插入图片描述

curtime():返回当前的时间
举例:select curtime();
演示结果如下:
在这里插入图片描述

now():返回当前的日期和时间。
举例:select now();
演示结果如下:
在这里插入图片描述

YEAR/MONTH/DAY(date):返回当前日期的月份
举例:select month(now());
在这里插入图片描述

DATE_ADD(date,INTERVAL expr type):返回一个日期/时间值加上一个时间间隔expr后的时间值
举例:select date_add(now(),interval 100 day);
解释:计算当前日期后的100天是什么时间
演示结果如下:
在这里插入图片描述

DATEDIFF(date1,date2):返回两个日期之间相差多少天
举例:select datediff('2023-5-20','2023-1-20');
演示结果如下:
在这里插入图片描述

小练习:查询所有人的入职天数,并根据入职天数进行倒序排序。
语句如下:select name,datediff(curdate(),entrydate) as 'entrydays' from emp order by entrydats desc;

四、流程函数

函数功能
IF(value,t,f)如果value为true则返回t,否则返回f
IFNULL(value1,value2)如果value不为空则返回value1,否则返回value2
CASE WHEN [val1] THEN [res1] …ELSE[default] END如果val1为true,则返回res1,…否则返回default默认值
CASE [expr] WHEN [val1] THEN [res1] …ELSE[default] END如果expr的值等于val1,返回res1,…否则返回default值

举例1:select ifnull(null,'default');
样例演示:
在这里插入图片描述

举例2:select if(true,'ok','error');
样例演示:
在这里插入图片描述

举例3:在这里插入图片描述
这里有一个学员成绩表,我们以此来进行演示,要求:>=85显示优秀,>=60显示及格,否则显示不合格。

select id,name,(case when math >= 85 then '优秀' when math >= 65 then '及格' else '不及格' end) '数学',(case when chinese >= 85 then '优秀' when math >= 65 then '及格' else '不及格' end) '语文',(case when english >= 85 then '优秀' when math >= 65 then '及格' else '不及格' end) '英语'
from score;

演示结果如下:
在这里插入图片描述

好了,以上就是本文的全部内容,主要对字符串、数值、日期、流程函数进行了总结。

嗯,就到这里啦,再见啦友友们!!!

http://www.lryc.cn/news/169228.html

相关文章:

  • GaussDB(DWS)云原生数仓技术解析:湖仓一体,体验与大数据互联互通
  • Navicat历史版本下载及地址组成分析
  • avue之动态切换表格样式问题
  • 彻底解决ruoyi分页后总数错误的问题
  • SpringMVC学习笔记——1
  • 20230908_python练习_selenium模块爬取网页小说练习
  • Python:安装Flask web框架hello world示例
  • 深度解析NLP文本摘要技术:定义、应用与PyTorch实战
  • zabbix监控多实例redis
  • win11将visual studio 2022的调试控制台改为windows terminal
  • 社区问答精选——长安链开发知多少?(8月)
  • 神经网络-Unet网络
  • Java | 多线程综合练习
  • Kotlin变量与控制条件的基本用法
  • 第18章_瑞萨MCU零基础入门系列教程之GPT
  • openssl websockets
  • Vue 组件的单元测试
  • 海底两万里的思维导图,轻松了解整体的内容
  • ZABBIX 6.4官方安装文档
  • 本地MQTT服务器搭建(EMQX)
  • Docker启动pandora并指定ACCESS TOKEN
  • Python + Jmeter 实现自动化性能压测
  • 【Linux进行时】进程状态
  • HarmonyOS开发环境搭建
  • 友思特新闻|友思特与IDS深化战略合作伙伴关系
  • ARM Linux DIY(十三)Qt5 移植
  • 二,手机硬件参数介绍和校验算法
  • ubunutu20/18/22 编译android 5相关的问题汇总-千里马framework开源代码平板编译过程
  • tauri vue vite
  • 名词解析与经验分享(前端)