【MySQL】内置函数

发布于:2025-03-22 ⋅ 阅读:(77) ⋅ 点赞:(0)

在这里插入图片描述

日期函数

函数名称 描述
current_date() 当前日期
current_time() 当前时间
current_timestamp() 当前时间戳
date(datetime) 返回datetime参数的日期部分
date_add(date, interval d_value_type) 在date中添加日期或时间,interval后的数值单位可以是:year、minute、second、day
date_sub(date, interval d_value_type) 在date中减去日期或时间,interval后的数值单位可以是:year、minute、second、day
datediff(date1, date2) 两个日期的差,单位是天
now() 当前日期时间

查看日期类的函数

current_date:
current_date可以显示当前的日期,年月日
在这里插入图片描述

current_time
current_time可以显示当前的时间
在这里插入图片描述

current_timestamp
current_timestamp可以显示当前的日期和时间
在这里插入图片描述

date
date函数只会显示年月日,相当于我传递一个年月日和时分秒的类型,会被强制转换为年月日,并输出
在这里插入图片描述

now
和current_timestamp差不多,也是返回当前日期和时间
在这里插入图片描述

与计算相关的日期类的函数

date_add
date_add也可以直接在内部嵌套函数,然后算多少天后是什么日期
在这里插入图片描述
interval除了可以跟day还可以跟minute,还可以跟second。

date_sub
date_sub和date_add相反,这个是算之前的时间。
在这里插入图片描述

datediff
这个是算两个时间段之间相隔了多少天
在这里插入图片描述
从这里可以发现,这个函数是前面的值减去后面的值,如果我们反过来应该是负数,不信我们可以试试。
在这里插入图片描述

字符串函数

函数名称 描述
charset(str) 返回字符串字符集
concat(string2 [, …]) 连接字符串
instr(string, substring) 返回substring在string中出现的位置,没有返回0
ucase(string2) 转换成大写
lcase(string2) 转换成小写
left(string2, length) 从string2的左边起取length个字符
length(string) string的长度
replace(str, search_str, replace_str) 在str中用replace_str替换search_str
strcmp(string1, string2) 逐字符比较两个字符串大小
substring(str, position [, length]) 从str的position开始,取length个字符
ltrim(string) 去除前空格
rtrim(string) 去除后空格
trim(string) 去除前后空格

charset函数

charset会返回字符集
在这里插入图片描述
我们随便查一张表可以看见编译方式是utf8.

concat函数

concat函数用于连接两个字符或者字符串。
在这里插入图片描述

instr

instr会找到第二个参数在第一个参数中的位置,如果没有就返回0。
在这里插入图片描述

可以看见在9号位置,而且我们可以发现,这里不是像数组一样,从下标0开始的,而是从下标1开始的。

显示大写或者显示小写函数(ucase && lcase)

在这里插入图片描述

ucase会将获取的所有字符转化为大写字母,lcase会将所有获取到的字符转化为小写字母

left函数

从左边开始向右取字符
在这里插入图片描述
既然有left肯定就有right函数,从右边开始向左取length个字符。

length函数

输出字符串长度
在这里插入图片描述

replace函数

在这里插入图片描述
可以看见上面虽然替换了但是原本的表中的数据时不会改变的,只是展现出来了替换的效果。
在这里插入图片描述

substring函数

取出子串和C语言中的substring差不多。
在这里插入图片描述

三个trim函数

ltrim是去掉前空格,rtrim是去掉后空格,trim是去掉所有空格。
可以看一下效果:

在这里插入图片描述

数学函数

函数名称 描述
abs(number) 绝对值函数
bin(decimal_number) 十进制转换二进制
hex(decimalNumber) 转换成十六进制
conv(number, from_base, to_base) 进制转换
ceiling(number) 向上取整
floor(number) 向下取整
format(number, decimal_places) 格式化,保留小数位数
hex(decimalNumber) 转换成十六进制
rand() 返回随机浮点数,范围 [0.0, 1.0)
mod(number, denominator) 取模,求余

这些函数很简单,所以我们挑两个来讲解

mod函数

mod可以去摸:
在这里插入图片描述

向上取整和想下取整

向上取整和向下取整的区别:

取整方式 说明 示例
向上取整(ceiling) 总是向更大的整数取整(进一) ceil(3.2) = 4
ceil(-3.2) = -3
向下取整(floor) 总是向更小的整数取整(去尾) floor(3.8) = 3
floor(-3.8) = -4

搞懂了这个,我们来试一下:
在这里插入图片描述

conv(转换进制)

conv可以将任何数的任何进制转化为任何进制:
这里就是将10进制的124转化为二进制
在这里插入图片描述

在这里插入图片描述

其他函数

user函数

在这里插入图片描述

user函数可以看现在是谁在访问MySQL

ifnull函数

ifnull和三目运算符差不多,当第一个值不是null的时候就是第一个结果,当第一个是null的时候就选择第二个参数做结果:
在这里插入图片描述

总结

在本文中,我们重点介绍了 MySQL 的日期函数、字符串函数和数学函数,并分别讲解了它们的常见用法和实际应用场景。通过这些内置函数,我们可以更方便地处理日期计算、字符串操作和数学运算,从而提高 SQL 查询的效率和可读性。
掌握并合理使用这些函数,不仅能简化 SQL 语句,还能优化数据处理流程。在实际开发中,我们应根据具体需求选择合适的函数,以提高数据库操作的灵活性和效率。希望本文能帮助大家更深入地理解 MySQL 内置函数,提升数据库开发能力! 🚀


网站公告

今日签到

点亮在社区的每一天
去签到