字符串函数
- length 获取字节个数(utf-8 一个汉字为3个字节,gbk为2个字节)
SELECT LENGTH('YM') # 输出 2
SELECT LENGTH('你好YM') # 输出8
- char_length 获取字符个数,不管汉字还是数字或者是字母都算是一个字符
SELECT LENGTH('YM') # 输出 2
SELECT LENGTH('你好YM') # 输出4
- concat 拼接字符串
SELECT CONCAT('你好','YM') # 输出 你好YM
- substr / substring 截取字符串
substr(str,pos) # str:要裁剪的字符串,pos:要截取的长度
substr(str,pos,len) # len:截取几位
# substring同理
- replace 替换
SELECT REPLACE('你好YM','你好','Hello') # 输出 HelloYM
- locate 获取字符串第一个出现的位置
SELECT LOCATE('YM','你好YM') # 输出 3
SELECT LOCATE('Hello','你好YM') # 输出 0
日期函数
函数语法 | 功能说明 |
---|---|
CURDATE | 当前日期 |
CURTIME | 当前时间 |
DATEDIFF(d1,d2) | 计算两个日期的差值,间隔几天 |
DAYOFWEEK(date) | 一星期中的第几天(1~7) |
DAYOFMONTH(date) | 一个月的第几天(1~31) |
DAYOFYEAR(date) | 一年的第几天(1~366) |
DATE_ADD(date) | 日期增加 |
DATE_SUB(date) | 日期减少 |
STR_TO_DATE(dateStr,format) | 将字符通过指定的格式转换成日期 |
DATE_FORMAT(date,format) | 将日期转换成字符 %Y-%m-%d %H:%i:%s |
-- 距今多少天
SELECT datediff('20210101', current_date());
-- 指定时间加1秒 2021-01-01 00:00:00
SELECT DATE_ADD('2020-12-31 23:59:59', INTERVAL 1 SECOND);
SELECT "2020-12-31 23:59:59" + INTERVAL 1 SECOND;
-- 输出 2021-04-27
SELECT STR_TO_DATE('04-27 2021','%c-%d %Y');
-- 输出 2021年04月27日
SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日');
Q.E.D.