
文章目录
日期函数
函数名称 | 描述 |
---|---|
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 内置函数,提升数据库开发能力! 🚀