MySQL中常用的函数

字符串函数

  1. 合并字符串

    1
    2
    concat();
    concat("Hello"," World");#Hello world,当传入的参数又一个为null时结果为null
  2. 获取字符串的长度

    1
    length(str);#空格也算一个字符,计算的是字节的长度,一个汉字占两个字节
  3. 字母大小写转换函数

    1
    2
    upper();#将传入的字符全部转换为大写
    lower();#将传入的字符全部转换为小写
  4. 在字符串中查找字符

    1
    2
    3
    4
    locate(str1,str);# 返回str中字符串str1的开始位置
    position(str1 IN str);# 返回str中字符串str1的开始位置
    instr(str,str1); # 返回str中字符串str1的开始位置

  5. 截取字符串

    1
    2
    3
    4
    left(str,num);# 从左边截取,字符串是str,长度是num
    right(str,num);# 从右边截取,字符串是str,长度是num
    substring(str,num,len);# 字符串是str,从num位置开始,长度是len,包含num位置
    mid(str,num,len);# 字符串是str,从num位置开始,长度是len,包含num位置
  6. 去掉字符串首位空格

    1
    2
    3
    ltrim(str);# 去除字符串开始的空格
    rtrim(str);# 去除字符串后面的空格
    trim(str);# 去除字符串首位的空格
  7. 替换字符串

    1
    replace(str1,str2,str3);# str1是原字符串,str2是需要替换的字符串,str3是替换str2的字符串

数值函数

  1. 获取随机数:

    1
    RAND();# 返回的数完全随机
  2. 获取整数的函数:

    1
    2
    3
    CEIL(num);# 上取整

    FLOOR(num);# 下取整
  3. 截取数值函数:

    1
    TRUNCATE(x,y);#x表示要截取的数值,y表示小数点后几位,也就是保留几位小数,是直接舍去,而不是四舍五入.
  4. 四舍五入函数:

    1
    2
    ROUND(x);
    ROUND(x,y);# 返回数值x保留到小数点后y位

日期函数:

  1. 获取当前日期和时间函数

    1
    2
    3
    4
    now();# 当前日期和时间
    locatime();# 当前日期和时间
    current_timestamp();# 当前日期和时间
    SYSDTAE();# 当前日期和时间
  2. 当前日期

    1
    2
    curdate();# 当前日期
    current_date();# 当前日期
  3. 当前时间

    1
    2
    curtime();
    current_time();
  4. 各种方式显示日期和时间

    1
    2
    3
    4
    unix_timestamp(日期类型的字符串);# 将日期类型的字符串转化为整形(秒数),UNIX格式
    from_unixtime("整形");# 将整形字符串转化为日期,普通格式
    UTC_DATE();# utc日期,只有日期
    UTC_TIME();# utc时间 ,只有时间
  5. 获取日期和时间各部分值

    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT NOW() 当前日期和时间,
    YEAR(NOW()) 年,
    QUARTER(NOW()) 季度,
    MONTH(NOW()) 月,
    WEEK(NOW())星期,
    DAYOFMONTH(NOW()) 天,
    HOUR(NOW()) 小时,
    MINUTE(NOW()) 分,
    SECOND(NOW()) 秒;
  6. 月(参数都是日期类型的字符串)

    1
    2
    MONTH(date);
    MONTHNAME(date);
  7. 星期

    1
    2
    3
    4
    5
    6
    week(date);# 年中第几个星期
    weekofyear(date);# 年中第几个星期
    dayname(date);# 星期,英文显示
    dayofweek(date);# 星期(不理解,用下面的)
    weekday(date);# 星期,数字表示

  8. 1
    2
    dayofyear(date);# 年中的第几天
    dayofmonth(date);# 月中的第几天
  9. EXTRACT函数

    1
    2
    3
    4
    5
    6
    EXTRACT(YEAR from NOW()); # 年
    EXTRACT(month from NOW()); # 月
    EXTRACT(day from NOW()); # 日
    EXTRACT(hour from NOW()); # 时
    EXTRACT(minutefrom NOW()); # 分
    EXTRACT(second from NOW()); # 秒
  10. 计算日期和时间的函数

    1
    2
    3
    4
    5
    SELECT NOW() 当前日期和时间,
    TO_DAYS(NOW()) 相隔天数, # 距离0000年1月1日
    FROM_DAYS(TO_DAYS(NOW())) 一段时间后日期和时间,
    DATEDIFF(NOW(),'2000-12-01') 相隔天数;
    TIMEDIFF('2021-12-15 09:36:46','2021-12-15 09:38:25') 相隔时间;
  11. 与指定日期和时间操作:

    1
    2
    3
    4
    5
    6
    ADDDATE(date,n); # 计算date加上n天后的日期
    SUBDATE(date,n); # 计算date减去n天后的日期
    ADDDATE(d,INTERVAL expr type);# type的类型查看#http://www.w3school.com.cn/sql/func_date_add.asp
    SUBDATE(d,INTERVAL expr type);
    # 例子
    select adddate(now(),interval '2,3' year_month ) '2年3个月后的日期';