字符串函数

  • 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.