字符串函数
1、拼接字符串
concat(str1,str2...)
select concat(12,34,'abccc')
select CONCAT(name,'的家乡是',hometown) from students
2、包含字符个数
length('abc')
注:一个中文占3个字符,一个字母或数字占1个字符
3、截取字符串
left(str,len)返回字符串str的左端len个字符
right(str,len)返回字符串str的右端len个字符
substring(str,pos,len)返回字符串str从位置pos起len个字符
4、去除空格
ltrim(str)返回删除了左空格的字符串str
rtrim(str)返回删除了右空格的字符串str
trim(str)返回删除了左右空格的字符串str
注:左右都去掉也可以左右两个函数套用
5、大小写转换
lower(str)
upper(str)
数学函数
1、round(n,d)
求四舍五入值round(n,d),n表示原数,d表示小数位置,默认d为0
2、求x的y次幂pow(x,y)
4、圆周率PI()
5、rand()
随机数rand(),值为0-1.0的浮点数
应用:从students表中随机取一条数据
select * from students ORDER BY RAND() LIMIT 1
日期时间
current_date()
获取当前日期
mysql> select current_date();
+----------------+
| current_date() |
+----------------+
| 2023-10-08 |
+----------------+
1 row in set (0.00 sec)
current_time()
获取当前时间
mysql> select current_time();
+----------------+
| current_time() |
+----------------+
| 11:41:21 |
+----------------+
1 row in set (0.00 sec)
now()
获取当前日期时间
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2023-10-08 11:42:37 |
+---------------------+
1 row in set (0.00 sec)
date_format(date,format)
日期格式化
参数format可选值如下
%Y 获取年,返回完整年份
%y 获取年,返回简写年份
%m 获取月,返回月份
%d 获取日,返回日
%H 获取时,返回24进制的小时数
%h 获取时,返回12进制的小时数
%i 获取分,返回分钟数
%s 获取秒,返回秒数
MySQL 函数 | 菜鸟教程
to_days()
计算日期 d 距离 0000 年 1 月 1 日的天数
SELECT TO_DAYS('0001-01-01 01:01:01')
-> 366
指定日期的多种书写方式
select to_days('20210601');
select to_days('2021/06/01');
select to_days('2021,06,01');
例:有一张表lito,表 有一个字段 create_time 类型 datetime查询当前表中昨天的数据
select * from lito where to_days(now())-to_days(create_time)<1
--now():获取当前的日期和时间:2022-08-18 11:20:53
yearweek(date,mode)
返回年份及第几周(0到53),mode 中 0 表示周天,1表示周一,以此类推(默认为0)
SELECT YEARWEEK("2017-06-15");
-> 201724