
在MySQL内部,有很多的函数供我们使用
1. 日期函数
- 获取时间与日期
- current_date()
- current_time()
- current_timestamp()
- now()
- date()
获取当前的日期时间
仅获取当前的日期 / 时间
- 获取一个时间加/减一个时间的结果
date_add(date,interval + 数 + 单位)
给指定日期/时间加上一个带单位的数,获得一个新的日期/时间,单位是:year、month、day、hour、minute、second
date_sub(date,interval + 数 + 单位)
- 获取两个时间的差
datediff(时间1,时间2);
案例:
已有留言表message:
显示所有留言信息,发布日期只显示日期,不用显示时间
请查询在4分钟内发布的帖子
2. 字符串函数
- 获取exam表的name列的字符集(
charset
)
- 要求显示exam表中的信息,显示格式:“XXX的语文是XXX,数学XXX,英语XXX”(使用字符串拼接
concat
)
- 求学生表中学生姓名占用的字节数
如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节
例如:字母,数字算作一个字节,中文表示多个字节数(与字符集编码有关),utf8中,一个字符占3个字节
- 将EMP表中所有名字中有S的替换成’上海’ (
replace(str,search_str,replace_str)
)
- 截取EMP表中ename字段的第二个到第三个字符(
substring(str,pos,length)
)
- 以首字母小写的方式显示所有员工的姓名
3. 数学函数
- 进制转换
- bin:十进制转二进制
- hex:十进制转十六进制
- oct:十进制转八进制
- conv(number,from_base,to_base):进制之间互相转换
conv的使用
- 绝对值 与向上/向下取整
- 格式小数位数
format(number, decimals, locale)
- number:要格式化的数字。
- decimals:指定小数点后的位数。如果省略,默认为 0。如果设置为 -1,则自动选择合适的小数位数。
- locale:指定区域设置。这个参数是可选的,用于控制千位分隔符、小数点字符等。如果省略,将使用 MySQL 服务器的默认区域设置。
- 随机数
rand():用于生成一个介于 0 和 1 之间的随机浮点数
4. 其它函数
- user() 查询当前用户
- database()显示当前正在使用的数据库
- md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串,可用作加密