MySQL —— 内置函数

目录
内置函数
一、日期函数
二、字符串函数
三、数学函数
四、其他函数
内置函数
一、日期函数
| 函数名称 | 描述 |
|---|---|
| current_date() | 获取当前日期 |
| current_time() | 获取当前时间 |
| current_timestamp() | 获取当前时间戳 |
| now() | 获取当前日期时间 |
| date(datetime) | 获取datetime参数的日期部分 |
| date_add(date, interval d_value_type) | 在date中添加日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second |
| date_sub(date, interval d_value_type) | 在date中减去日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second |
| datediff(date1, date2) | 获取两个日期的差,单位是天 |
current_date( )函数:用于获取当前的日期

current_time( )函数:用于获取当前的时间

current_timestamp( )函数:用于获取当前的时间戳,以日期时间格式进行显示

now( )函数:用于获取当前的日期时间

date(datetime)函数:用于获取当前的日期时间

date_add(date, interval d_value_type)函数:用于在日期的基础上添加日期或时间

如果在date_add函数中添加的日期/时间为负值,则相当于在日期的基础上减去日期/时间。如下:

date_sub(date, interval d_value_type)函数:用于在日期的基础上减去日期或时间

如果在date_sub函数中减去的日期/时间为负值,则相当于在日期的基础上添加日期/时间。如下:

datediff(date1, date2)函数:用于获取两个日期的差,单位是天

案例:
创建一个留言表,表中包含自增长的主键id、昵称、留言内容和留言时间。如下:

然后向表msg1中插入一些数据,插入时直接通过now函数指明评论时间。如下:

在显示评论信息时,如果只想显示评论的日期而不显示评论的时间,可以在查询sendtime字段时,通过date函数截取sendtime的日期部分进行显示。如下:

我们接下来不定时向表中插入一些数据:

在显示评论信息时,如果要查询10分钟内发布的评论信息,实际就是要筛选出评论时间加上10分钟后大于当前时间的评论,这时需要同时借助date_add和now函数。如下:

二、字符串函数
| 函数名称 | 说明 |
|---|---|
| charset(str) | 获取字符串使用的字符集 |
| concat(str1, str2 [, …]) | 获取连接后的字符串 |
| instr(str, substr) | 获取substr在str中首次出现的位置,没有出现返回0 |
| ucase(str) | 获取转换成大写后的字符串 |
| lcase(str) | 获取转换成小写后的字符串 |
| left(str, length) | 从字符串的左边开始,向后截取length个字符 |
| length(str) | 获取字符串占用的字节数 |
| replace(str, search_str, replace_str) | 将字符串中的search_str替换成replace_str |
| strcmp(str1, str2) | 逐字符比较两个字符串的大小 |
| substring(str, position [, length]) | 从字符串的position开始,向后截取length个字符 |
| ltrim(str)、rtrim(str)、trim(str) | 去除字符串的前空格、后空格、前后空格 |
charset函数:
现有如下员工表,要求获取员工表中ename列使用的字符集。如下:

在查询员工表中的信息时,使用charset函数获取ename列使用的字符集即可。如下:

concat函数
有如下成绩表,要求以“XXX的语文是XX分,数学是XX分,英语是XX分”的格式显示成绩表中的信息。如下:

在查询成绩表中的信息时,使用concat函数按要求进行字符串连接即可。如下:

instr函数:用于获取一个字符串在另一个字符串中首次出现的位置,如果没有出现则返回0

ucase函数:用于获取转换成大写后的字符串

lcase函数:用于获取转换成小写后的字符串

left函数:用于从字符串的左边开始,向后截取指定个数的字符

length函数:用于获取字符串占用的字节数

说明一下: 对于多字节字符来说,不同编码中一个字符所占的字节个数是不同的,比如utf8中一个字符占用3个字节,而gbk中一个字符占用2个字节。
replace函数:用于将字符串中的指定子字符串替换成另一个字符串,例如将员工表中所有名字中的“S”替换成“上海”。

strcmp函数:用于逐字符按照ASCII码比较两个字符串的大小,两个字符串大小相等返回0,前者大返回1,后者大返回-1(比较时不区分大小写)

substring函数:用于从字符串的指定位置开始,向后截取指定个数的字符。

使用substring函数时,如果没有指定要截取的字符个数,则默认从指定位置开始截取到最后。如下:

ltrim、rtrim和trim函数
- trim函数用于去除字符串的前后空格。
- ltrim和rtrim函数分别用于去除字符串的前空格和后空格。
三、数学函数
| 函数名称 | 说明 |
|---|---|
| abs(number) | 绝对值函数 |
| bin(decimal_number) | 十进制转换成二进制 |
| hex(decimal_number) | 十进制转换成十六进制 |
| conv(number, from_base, to_base) | from_base进制转换成to_base进制 |
| ceiling(number) | 向上取整 |
| floor(number) | 向下取整 |
| format(number, n) | 格式化,保留n位小数(四舍五入) |
| rand() | 生成随机浮点数,范围 [0.0, 1.0) |
| mod(number, denominator) | 求余 |
abs函数:用于获取一个数的绝对值

bin函数:用于将一个十进制数转换成二进制

hex函数:用于将一个十进制数转换成十六进制

conv函数:用于将一个数从一个进制转换成另一个进制

ceiling函数:用于对一个数进行向上取整

floor函数:用于对一个数进行向下取整

format函数:用于对数值进行格式化,以四舍五入的方式保留指定位数的小数

rand函数:用于生成0.0到1.0的随机浮点数

如果想要生成0到100的随机数,可以用生成的随机浮点数乘以100,然后再以某种取整方式进行取整。如下:

mod函数:用于对数值进行求余运算

四、其他函数
user函数:用于获取MySQL连接的当前用户名和主机名。

md5函数:用于对一个字符串进行md5摘要,摘要后得到一个32位字符串。

补充:
- 一般情况下公司内部数据库不会存储用户的明文密码,而会将用户密码形成摘要后存储对应的摘要,当用户登录账号时,将用户输入的的密码形成摘要后与数据库中存储的摘要做对比,如果对比成功则允许登录。
- 这么做的好处主要有两个,第一个好处就是公司内部数据库中存储的不是用户的明文信息,就算用户信息泄露了也不会产生太大影响,第二个好处就是形成的摘要是定长的,这样有利于数据库表结构的设计。
database函数:用于显示当前正在使用的数据库。

password函数:用于对用户数据进行加密。

ifnull函数:接受两个参数,如果第一个参数不为null则返回第一个参数值,否则返回第二个参数值。

相关文章:
MySQL —— 内置函数
目录 内置函数 一、日期函数 二、字符串函数 三、数学函数 四、其他函数 内置函数 一、日期函数 函数名称描述current_date()获取当前日期current_time()获取当前时间current_timestamp()获取当前时间戳now()获取当前日期时间date(datetime)获取datetime参数的日期部分d…...
Mybatis框架(全部基础知识)
👌 棒棒有言:也许我一直照着别人的方向飞,可是这次,我想要用我的方式飞翔一次!人生,既要淡,又要有味。凡事不必太在意,一切随缘,缘深多聚聚,缘浅随它去。凡事…...
pixhawk2.4.8使用调试记录—APM固件
目录一、硬件准备二、APM固件、MP地面站下载三、地面站配置1 刷固件2 机架选择3 加速度计校准4 指南针校准5 遥控器校准6 飞行模式7 紧急断电&无头模式8 基础参数设置9 电流计校准10 电调校准11 起飞前检查(每一项都非常重要)12 飞行经验四、遇到的问…...
终于进了字节,记录一下我作为一名测试员磕磕碰碰的三个月找工作经历...
我是裸辞后重新找工作的,从去年到今年,前前后后花了大概三个月,大大小小参加了几百场面试。不是我说,作为一名测试员是真的挺难的,不过很庆幸自己最后拿到了字节的offer,今天在这里做一下记录吧,…...
基于PYTHON django四川旅游景点推荐系统
摘 要基于四川旅游景点推荐系统的设计与实现是一个专为四川旅游景点为用户打造的旅游网站。该课题基于网站比较流行的Python 语言系统架构,B/S三层结构模式,通过Maven项目管理工具进行Jar包版本的控制。本系统用户可以发布个人游记,查看景点使用户达到良…...
MySql服务多版本之间的切换
从网上总结的经验,然后根据自己所遇到的问题合并记录一下,方便日后再次需要用到 MySql服务多版本同时运行 步骤 1、如果你电脑上已经有一个mysql版本,例如mysql-5.7.39-winx64,它占据了3306端口。此时如果你想下仔另一版本&…...
嵌入式开发:通过嵌入式虚
嵌入式虚拟化为实现多核处理能力的优势提供了一种可扩展的机制。嵌入式应用中的虚拟化与其企业和桌面应用有许多共同之处。独特的嵌入式使用案例和专业的底层技术为嵌入式开发人员提供了优化性能和响应设计的新机会。在台式机、数据中心以及现在的嵌入式设计中采用多核技术可以…...
广州穗雅医院杨济安:了解症状表现 有效防治口腔黏膜下纤维化
“医生,我出现口干大半年时间,最近两月张嘴费劲,吃点辣的,嘴就刺疼刺疼的,这是怎么回事?”半年前,家住南沙的文先生走进广州穗雅医院口腔黏膜科如是说到。在科室杨济安主任的详细问诊与检查后&a…...
[数据分析] 数据指标体系搭建
在数据分析的学习过程中,我们通常会要求掌握以下两点: 1.理解数据,懂得从数据中发现业务指标(学会如何去看懂数据) 2.使用相关指标去分析数据,同时使用多个指标去分析一个问题(了解常见的指标) 当我们拿到数据(通常以Excel或者数据库方式去…...
Dubbo 源码分析 – 集群容错之 Cluster
3.2.2 FailbackClusterInvoker FailbackClusterInvoker 会在调用失败后,返回一个空结果给服务提供者。并通过定时任务对失败的调用进行重传,适合执行消息通知等操作。下面来看一下它的实现逻辑。 public class FailbackClusterInvoker<T> extend…...
Spring学习20230208-09
IOC底层原理 IOC概念 :面向对象编程中的一种设计原则,用来降低耦合度 通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象引用传递给他。可以说,依赖被注入到对象中。控制反转&…...
tomcat10部署报错WebStatFilter cannot be cast to jakarta.servlet.Filter
异常信息09-Feb-2023 23:08:49.946 严重 [main] org.apache.catalina.core.StandardContext.filterStart 启动过滤器异常[DruidWebStatFilter]java.lang.ClassCastException: com.alibaba.druid.support.http.WebStatFilter cannot be cast to jakarta.servlet.Filterat org.ap…...
Linux修改文件时间或创建新文件:touch
每个文件在Linux下面都记录了许多的时间参数,其实是三个主要的变动时间 修改时间(modification time,mtime):当该文件的【内容数据】变更时,就会更新这个时间,内容数据是指文件的内容ÿ…...
原生微信小程序按需引入vant
vant Vant Weapp - 轻量、可靠的小程序 UI 组件库 1.npm安装 找到项目根目录 安装 # 通过 npm 安装 npm i vant/weapp -S --production# 通过 yarn 安装 yarn add vant/weapp --production# 安装 0.x 版本 npm i vant-weapp -S --production 2 .修改 app.json 将 app.jso…...
高性能IO模型:为什么单线程Redis能那么快?
我们通常说Redis是单线程,主要是指Redis的网络IO和键值对读写是由一个线程来完成的。这也是Redis对外提供键值存储服务的主要流程。 但redis的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。 Redis为什么用单线…...
【数据集】中国各类水文专业常用数据集合集
1 水文气象数据 1.1 中国站点尺度天然径流量估算数据集(1961~2018年) 论文: J2022-High-quality reconstruction of China’s natural streamflow-缪驰远(北京师范大学地理科学学部) 研究内容:…...
落枕、肩颈酸痛,用磁疗就可缓解!
睡觉之前还是好好的,一觉醒来脖子莫名疼痛,转都转不了,有时候连肩膀和上肢都难受,很可能是“落枕”了。 落枕引起的肩颈疼痛与多种因素有关,如颈肩部肌肉的过度使用、不良的睡眠姿势或颈肩部受寒湿空气的侵袭ÿ…...
一文教会你如何选择远程桌面(五大主流远程软件全面讲解)
写在前面 作为程序员的我们,随时随地写代码改代码是我们的日常。刚回到家,就被老板、产品经理cue是常有的事。基于这种情况,一般都会随身携带电脑,随时备战,不过每天背着电脑上下班非常不方便。因此资深程序员的解决方…...
【yolov5】yolov5训练自己的数据集全流程----包含本人设计的快速数据处理脚本
关于yolo应用时能用到的脚本集合,推荐收藏: https://chenlinwei.blog.csdn.net/article/details/127299428 1. 工程化快速yolo训练流程指定版(无讲解) 1.1 抽样数据集xml转txt输出量化分析 python make_dataset.pymake_dataset…...
leaflet 加载CSV数据,显示图形(代码示例046)
第046个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中加载CSV文件,将图形显示在地图上。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,请加载其他来练习 文章目录 示例效果配置方式示例源代码(共74…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
