【MySQL】常用内置函数:数值函数 / 字符串函数 / 日期函数 / 其他函数
文章目录
- 数值函数
- round():四舍五入
- ceiling():上限函数
- floor():地板函数
- abs():计算绝对值
- rand():生成0-1的随机浮点数
- 字符串函数
- length():获取字符串中的字符数
- upper() / lower():将字符串转化成大小写
- trim/ltrim/rtrim:删除字符串中不需要的空格
- left /right /substr:返回字符串相应位置字符
- locate:返回第一个字符或一串字符匹配位置
- replace:替换字符或字符串
- concat:串联两个字符串
- 日期函数
- now() / curdate() / curtime():返回当前的日期和时间 / 返回当前日期 / 返回当前时间
- year(now()) / month() / day() / hour() / minute() / second() 提取特定日期或时间
- dayname(now()) / monthname():返回字符串类型的星期和月份
- extract(day from now()):返回指定的时间或日期
- 练习1
- date_format():日期格式函数
- time_format():时间格式函数
- date_add():给日期时间值增加日期,写负值也能减
- date_sub():给日期时间值减去日期,写负值也能加
- datediff():返回两个日期的天数间隔
- time_to_sec():返回从零点计算的秒数
- 其他函数
- ifnull()
- coalesce()
- 练习1
- if():单一表达式
- 练习2
- case运算符:多个表达式
- 练习3
数值函数
- 可查看所有的数值函数
round():四舍五入
- 参数1
select round(5.37)
运行结果

- 参数2,可指定四舍五入的精度
select round(5.37,1)
运行结果

ceiling():上限函数
- 返回大于或等于这个数字的最小整数
select ceiling(5.1)
运行结果

floor():地板函数
- 返回小于或等于这个数字的最大整数
select floor(5.8);
运行结果

abs():计算绝对值
select abs(-3.5);
运行结果

rand():生成0-1的随机浮点数
select rand()
运行结果

字符串函数
- 可查看所有的字符串函数
length():获取字符串中的字符数
select length('xuwuuuu')
运行结果

upper() / lower():将字符串转化成大小写
select upper('xuwuuuu');
运行结果

select lower('XUWUUUU')
运行结果

trim/ltrim/rtrim:删除字符串中不需要的空格
- ltrim():移除字符串左侧的空白字符或其他预定义字符
select ltrim(' xuwuuu')

- rtirm():移除字符串右侧的空白字符或其他预定义字符
select rtrim('xuwuuu ');

- trim():删除所有前导或尾随空格,但不能删除字符串中间的空格
select trim(' xuwuuu ')

left /right /substr:返回字符串相应位置字符
- left():返回字符串左侧的几个字符
select left('xuwuuuuu',3)

- right():返回字符串右侧的几个字符
- substr():字符截取函数,可以得到任何位置的字符;
- 第二个参数是起始位置,第三个参数是长度;
- 也可以不写第三个参数,这样就返回从起始位置到字符串最后的所有字符。
select substr('xuwuuuuu',3,2);

locate:返回第一个字符或一串字符匹配位置
- 这个函数不区分大小写
- 返回指定的字符在字符串中第一次出现的位置。
select locate('u', 'xuwuuuu')

- 如果指定的字符在字符串中没有,会返回0
select locate('y', 'xuwuuuu')

- 还可以搜索一串字符串
- 同样,要搜索的字符串不存在时,也会返回0
select locate('uuuu', 'xuwuuuu')

replace:替换字符或字符串
- 第一个参数:完整的字符串;第二个参数:要被替换掉的字符或字符串;第三个参数:新的字符或字符串
select replace('xuwuuuuu', 'xu', 'st')

- 一个字符替换一个字符串也是可以的,一个字符串替换一个字符也可以
select replace('xuwuuuuu', 'xu', 's')

select replace('xuwuuuuu', 'x', 'st')

concat:串联两个字符串
select concat('xu', 'wuuuu')

- 练习:把表中的名和姓串联起来

use sql_store;
select concat(first_name, ' ', last_name) as full_name
from customers
日期函数
now() / curdate() / curtime():返回当前的日期和时间 / 返回当前日期 / 返回当前时间
select now(), curdate(), curtime();

year(now()) / month() / day() / hour() / minute() / second() 提取特定日期或时间
- 返回整数值
select year(now()), month(now()), day(now()),minute(now()), second(now())

dayname(now()) / monthname():返回字符串类型的星期和月份
- 返回字符串
select dayname(now()), monthname(now())

extract(day from now()):返回指定的时间或日期
- 要定制单位,如年、月、日期、秒等
select extract(day from now()),extract(year from now()),extract(month from now())

练习1
- 筛选当前年份的订单。把当前时间的年份提取出来,再把订单日期的年份提出来,筛选两个年份相等的数据。
use sql_store;
select *
from orders
where year(order_date) = year(now())
date_format():日期格式函数
-
格式说明符查询连接

-
两个参数。
-
一个是日期值
-
一个是格式字符串
- %y:两位数的年份
- %Y:四位数的年份
- %m:两位数的月份
- %M:字符串的月份
- %d:获取当前日期
select date_format(now(), '%M %d %Y')

time_format():时间格式函数
- 两个参数;一个是时间值,一个是格式字符串。
select time_format(curtime(), '%H:%i %p')

date_add():给日期时间值增加日期,写负值也能减
- 想在当前日期时间上增加一天
- 第二个参数
- interval 1 day;
- interval 3 year;
- interval -1 year;获取过去的时间
select date_add(now(), interval 1 day),date_add(now(), interval -3 year)
返回了明天的同一时间(写码当前是2023-11-29),返回3年后的同一时间

date_sub():给日期时间值减去日期,写负值也能加
select date_sub(now(), interval 4 day),date_sub(now(), interval -3 year)

datediff():返回两个日期的天数间隔
- 只返回天数的间隔,不考虑时间的间隔
- 两个时间的顺序调换,会得到正值或负值
select datediff('2023-11-29 22:02', '2022-11-29 21:02'),datediff('2022-11-29 22:02', '2023-11-29 21:02')

time_to_sec():返回从零点计算的秒数
- 返回从零点计算的秒数
select time_to_sec('00:30'),time_to_sec(curtime())

- 返回两个时间间隔的秒数
select time_to_sec('22:10') - time_to_sec('22:00')

其他函数
ifnull()
- 有些订单的发货id是空值。如果想让用户看到的是“未分配”而不是空值,可以调用ifnull()函数,把发货id替换成别的。

use sql_store;
select order_id,ifnull(shipper_id, 'Not assigned') as shipper
from orders

coalesce()
- 如果参数1是null,就返回参数2;参数2为空,就返回参数3
- 写一堆参数,coalesce函数会返回这堆参数中第一个非空值。
use sql_store;
select order_id,coalesce(shipper_id, comments, 'Not assigned') as shipper
from orders

练习1
- 返回客户的姓名和电话,没有电话的显示Unknown
- concat()函数串联字符串!
select concat(first_name, ' ', last_name) as customer,ifnull(phone, 'Unknown')
from customers

if():单一表达式
- if(expression,first,second):如果表达式为真,则返回first,否则返回second
- 把订单分类,如果订单是今年的,就放在“活跃类别”;否则就放入“归档类别”
- 可以用union,筛选活跃类别的,再筛选归档类别的,用union连接起来
- 可以用if函数,达到同样效果
select order_id,order_date,if(year(order_date) = '2019', 'Active', 'Archived') as category
from orders

练习2
- count(*)按照product_id进行计数,就能得到每个id对应有多少数据。
select product_id,name,count(*) as orders,if(count(*) > 1, 'Many times', 'Once') as frequency
from products
join order_items using (product_id)
group by product_id

case运算符:多个表达式
- 在有多个表达式且想针对每个表达式返回不同值时,适用case运算符
- case
when …… then
when …… then
when …… then
else
end as ……
select order_id,order_date,casewhen year(order_date) = '2019' then 'Active'when year(order_date) = '2018' then 'Last Year'when year(order_date) < '2018' then 'Archived'else 'Future'end as category
from orders;

练习3
- 按照积分给客户分为3类。
select concat(first_name, ' ', last_name) as customer,points,casewhen points > '3000' then 'Gold'when points between '2000' and '3000' then 'Sliver'when points < '2000' then 'Bronze'end as category
from customers
order by points desc
select concat(first_name, ' ', last_name) as customer,points,casewhen points > '3000' then 'Gold'when points >= '2000' then 'Silver'else 'Bronze'end as category
from customers
order by points desc;

相关文章:
【MySQL】常用内置函数:数值函数 / 字符串函数 / 日期函数 / 其他函数
文章目录 数值函数round():四舍五入ceiling():上限函数floor():地板函数abs():计算绝对值rand():生成0-1的随机浮点数 字符串函数length():获取字符串中的字符数upper() / lower():将字符串转化…...
Python内置函数与标准库函数的详细解读
一、内置函数与标准库函数的区分 Python 解释器自带的函数叫做内置函数,这些函数可以直接使用,不需要导入某个模块。 Python 解释器也是一个程序,它给用户提供了一些常用功能,并给它们起了独一无二的名字,这些常用功能…...
计算机应用基础_错题集_Internet应用1---网络教育统考工作笔记004
5、下面关于搜索引擎的说法,不正确的是____。 A.搜索引擎既是用于检索的软件,又是提供查询﹑检索的网站 B.搜索引擎按其工作方式分为两类:全文搜索引擎和基于关键词的搜索引擎 C.现在很多搜索引擎提供网页快照的功能,当这个网页被删除或链接失效时,用户仍可使用网页快照…...
STM32之定时器--超声波测距
1、模块介绍 型号:HC-SR04 超声波测距模块是用来测量距离的一种产品,通过发送和收超声波,利用时间差和声音传播速度, 计算出模块到前方障碍物的距离。 2、超声波模块的使用方法 怎么让它发送波 Trig ,给Trig端口至…...
微信小程序 老年人心血管健康知识科普系统
本系统的功能有管理员:个人中心,用户管理,热点信息管理,疾病管理,疾病类型管理,治疗管理,治疗类型管理,护理管理,护理类型管理,科普管理,科普类型…...
influxdb2.x安装配置指南
influxdb的教程已经是很清楚了,但没有中文版翻译,以下是个人安装配置总结 如果机器上只需要一个influxdb实例,或docker安装,直接yum install 就可以了,或者采用离线安装: sudo yum localinstall influxdb…...
android APP使用指定网络上网的原理
【精选】Android app 指定网络发送数据包的实现与原理分析_bindprocesstonetwork-CSDN博客 补充: frameworks/base/core/java/android/net/ConnectivityManager.java 函数: bindProcessToNetwork 调用到了 NetworkUtils.bindProcessToNetwork 但是N…...
git-2
1.分离头指针情况下的注意事项 分离头指针指的是变更没有基于某个branch去做,所以当进行分支切换的时候,在分离头指针上产生的commit,很可能会被git当作垃圾清理掉,如果你认为是重要的内容,切记需要绑定分支 2.进一步…...
Vue实现可拖拽边界布局
Vue实现可拖拽边界布局 在前端开发中,有时需要实现一种可拖拽边界的布局,通过拖动分隔线来调整不同区域大小。例如,下图是一个典型的可拖拽边界布局,它由左右两个区域组成,左边是一个树形菜单,右边是一个上…...
Day41力扣打卡
打卡记录 第 N 位数字(找规律) 链接 class Solution:def findNthDigit(self, n: int) -> int:count, digit, start 9, 1, 1while n > count:n - countdigit 1start * 10count start * 9 * digitnum start (n - 1) // digitreturn int(str(n…...
SpringBoot项目发送邮件
📑前言 本文主要是【SpringBoot】——SpringBoot项目发送邮件的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 dz…...
Mac单独修改应用语言
方法1: 方法2: defaults write com.microsoft.Excel AppleLanguages ("zh-cn") defaults write com.microsoft.Word AppleLanguages ("zh-cn")参考:https://www.zhihu.com/question/24976020...
Unity 通过代码控制Texture进行缩放
在实际应用开发中,有时候需要通过代码对Texture进行缩放。 有两个方法,一个是通过控制宽高进行缩放,另一个是通过比例值进行等比例缩放。 1、控制宽高的方法: /// <summary>/// 纹理缩放方法一,指定宽高/// &…...
C语言:输入3个整数,按由小到大的顺序输出(指针)
分析: 定义三个整型变量 a、b、c,和三个指向整型变量的指针变量 i、j、k。然后使用 scanf 函数从标准输入(键盘)中读取输入的三个整数,并将它们存储到 a、b、c 中。注意,使用 &a、&b、&c 进行赋…...
C# 模拟鼠标操作工具类
写在前面 用WinForm做RPA项目时经常需要模拟鼠标操作,通过调用Windows Api 可以实现控制鼠标的移动、点击以及滚轮滚动,做到跟人工一样的操作。 代码实现 public static class MouseKeyController{[DllImport("user32")]private static exte…...
content_script.js、background.js和popup.js之间的通讯
1. content_script.js 和 background.js 之间的通信: 使用 chrome.runtime.sendMessage 发送消息,然后在 background.js 中使用 chrome.runtime.onMessage 监听消息并作出相应处理。使用 chrome.extension.sendMessage 发送消息,然后在 back…...
python的requests请求参数带files
踩坑接口请求参数含文件 requests接口请求既有file,也有json。划重点params requests 官网地址 https://requests.readthedocs.io/en/stable/user/quickstart/#post-a-multipart-encoded-file 接口请求既有file,也有json。划重点params import reques…...
Elk:filebeat 日志收集工具和logstash
Elk:filebeat 日志收集工具和logstash Filebeat是一个轻量级的日志手机工具,所使用的系统资源比logstash部署和启动时使用的资源要小得多 Filebeat可以在非java环境使用,他可以代理logstash在非java环境上收集日志 缺点 Filebeat无法实现数据的过滤,一般是结合l…...
[设计模式] 常见的设计模式
文章目录 设计模式的 6 大设计原则设计模式的三大分类常见的设计模式有哪几种1. 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。(连接池)1. 饿汉式2. 懒汉式3. 双重检测 2. 工厂模式3. 观察者模式● 推模型● 拉…...
报错解决:You may need an additional loader to handle the result of these loaders.
报错信息如下 vue 项目 Module parse failed: Unexpected token (1:9) File was processed with these loaders:* ./node_modules/vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js* ./node_modules/babel-loader/lib/index.js* ./node_modules/eslint-loader/in…...
Hirschmann RS20-0800M4M4SDAE工业以太网交换机
Hirschmann RS20-0800M4M4SDAE 工业以太网交换机产品特点:端口配置:共8个端口,含6个RJ45电口和2个ST光纤接口。端口速率:所有端口均为100Mbps快速以太网。光纤类型:2个光纤端口为多模、ST接头。管理类型:二…...
Vue3 图片标框功能实现方案
基于 Vue3 组合式 API 的图片标框(画框、标注、选框)完整实现,核心逻辑封装在 GetBoxes 组件里,复制就能用 一、功能说明 ✅ 在图片上鼠标拖拽画矩形框 ✅ 实时显示框坐标(x, y, width, height) ✅ 支持多…...
Win10系统清理避坑指南:你的BAT脚本真的安全吗?盘点那些不能乱删的文件
Win10系统清理避坑指南:BAT脚本安全操作手册每次看到那些号称"一键清理系统垃圾"的BAT脚本在技术论坛被疯狂转发,我的工程师朋友老张就会忍不住摇头。上周他刚帮一位设计师修复了崩溃的Photoshop——原因正是某个清理脚本删除了Adobe的临时工作…...
告别浪费!SolidWorks企业级共享方案,实现降本增效全攻略
还在为 SolidWorks 高昂的硬件投入和混乱的图纸管理头疼?告别“一人一机”的浪费模式,企业级共享方案才是降本增效的正解。这套攻略基于“1 台高性能服务器 云飞云共享云桌面”架构,帮你把硬件成本砍掉 60%,把软件利用率翻倍。一…...
Windows10下V-REP教育版安装保姆级教程(附百度网盘资源与避坑点)
Windows10系统V-REP教育版完整安装指南:从下载到实战避坑在机器人仿真和自动化控制领域,V-REP(现更名为CoppeliaSim)作为一款功能强大的跨平台机器人仿真软件,已经成为众多工科学生和研究人员的首选工具。特别是其教育…...
从“DOC/PDF”到“WPS”:细看GJB438C-2021文档格式要求背后的国产化信号与落地指南
从“DOC/PDF”到“WPS”:GJB438C-2021文档格式变革的深度解读与实施策略 当一份国家军用标准在文档格式描述中刻意删除"DOC/PDF"字样,转而明确标注"(WPS)文档处理器"时,这绝非简单的技术参数调整。…...
Godot4 2D游戏开发避坑指南:TileMap绘制、节点顺序与相机设置的三个常见问题
Godot4 2D游戏开发避坑指南:TileMap绘制、节点顺序与相机设置的三个常见问题当你第一次用Godot4完成一个2D场景搭建时,那种成就感往往会被几个突如其来的bug瞬间击碎——角色神秘消失、背景纹丝不动、屏幕边缘出现诡异黑边。这些问题看似简单,…...
Taotoken的审计日志功能为企业API安全与合规管理提供支持
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken的审计日志功能为企业API安全与合规管理提供支持 当企业决定将大模型能力集成到内部业务流程中时,IT管理员和安…...
如何在3分钟内为任何活动搭建专业级滚动抽奖系统?Magpie-LuckyDraw全平台开源方案深度解析
如何在3分钟内为任何活动搭建专业级滚动抽奖系统?Magpie-LuckyDraw全平台开源方案深度解析 【免费下载链接】Magpie-LuckyDraw 🏅A fancy lucky-draw tool supporting multiple platforms💻(Mac/Linux/Windows/Web/Docker) 项目地址: https…...
03 - 变量与数据类型
03 - 变量与数据类型 变量是编程里最基础的概念,相当于你往电脑里存东西的"容器"。这章我们把变量的命名规则、Python 的几种基本数据类型都过一遍。 变量是什么 说白了,变量就是一个有名字的盒子。你往里面放个东西,以后想用这个…...
