• MySQL的内置函数


    日期函数

    函数名称描述
    current_date()当前的日期
    current_time()当前的时间
    current_timestamp()当前时间戳,日期加时间
    date(datetime)返回时间戳的日期部分
    time(datetime)返回时间戳的时间部分
    date_add(date,interval d_value_type)返回date加某个时间,后面参数的单位可以是year,day,minute,second
    date_sub(date,interval d_value_type)返回date减某个时间,后面参数的单位可以是year,day,minute,second
    datediff(date1,date2)返回两个日期的时间差,单位是天
    now()返回当前日期和时间,和timestamp一样

    可以配合select使用,比如:
    假设一个表有一个日期列,插入时该列的值都是now(),筛选出2分钟以内插入的信息:

    select * from 表名 where date_add(表的时间列,interval 2 minute) >= now();
    
    • 1

    字符串函数

    函数名称描述
    charset(str)返回字符串字符集
    concat(string1[, …])返回一个拼接的字符串
    instr(string,substring)返回substring在string中首次出现的位置,以1作为起始位置,没有就返回0
    ucase(string)把目标串全部转换成大写
    lcase(string)把目标串全部转换成小写
    left(string,length)从string2的左边起取length个字符
    length(string)返回string的字节长度
    replace(str,search_str,replace_str)在str中用relpace_str替换search_str
    strcmp(string1,string2)逐字符比较两个字符串的大小,忽略大小写,前者大返回1,后者大返回-1,相等返回0
    substring(str,position[, length])从str的position位置开始,以1作为起始位置,取length个字符
    ltrim(string) rtrim(string) rtim(string)去除左侧空格或右侧空格或两边空格

    获取某一列的字符集

    select charset(列名) from 表名;
    
    • 1

    计算某一列占用的字节数

    select length(列名) from 表名;
    
    • 1

    注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数组算作一个字节,中文表示多个字节数(与字符集编码有关)

    从头开始截取一个字符串

    select substring('123456',1);
    
    • 1

    注意,这里的position和C语言的不一样,这里是从1开始的

    把字符串的第一个字符转换成大写

    select concat(ucase(substring('目标字符串',1,1)),substring('目标字符串',2));
    
    • 1
    mysql>  select concat(ucase(substring('string',1,1)),substring('string',2)) as '转换结果';
    +--------------+
    | 转换结果     |
    +--------------+
    | String       |
    +--------------+
    1 row in set (0.00 sec)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    数学函数

    函数名称描述
    abs(number)返回绝对值
    bin(decimal_number)十进制换二进制
    hex(decimalNumber)十进制换十六进制
    conv(number,from_base,to_base)把number从from进制转换成to进制
    ceiling(number)向上去整
    floor(number)向下去整
    format(number,decimal_places)number要保留的小数位数,四舍五入
    rand()返回随机浮点数,范围是[0.0,1.0)
    mod(number,denominator)取模,求余

    向上取整,无论正负,都向大的方向取整:

    mysql> select ceiling(10.1);
    +---------------+
    | ceiling(10.1) |
    +---------------+
    |            11 |
    +---------------+
    1 row in set (0.00 sec)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    向下取整,无论正负,都向小的方向取整

    mysql> select floor(10.9);
    +-------------+
    | floor(10.9) |
    +-------------+
    |          10 |
    +-------------+
    1 row in set (0.00 sec)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    其他函数

    user():查询当前用户

    mysql> select user();
    +----------------+
    | user()         |
    +----------------+
    | root@localhost |
    +----------------+
    1 row in set (0.00 sec)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    md5(str):对一个字符串进行md5摘要,摘要后得到一个32位定长的不重复的字符串。

    mysql> select md5('str');
    +----------------------------------+
    | md5('str')                       |
    +----------------------------------+
    | 341be97d9aff90c9978347f66f945b77 |
    +----------------------------------+
    1 row in set (0.00 sec)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    可以用来保存用户密码,其原理是通过哈希算法实现的。

    database():查看当前正在使用的数据库

    mysql> select database();
    +------------+
    | database() |
    +------------+
    | for_test   |
    +------------+
    1 row in set (0.00 sec)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    password(),可以使用该函数对用户密码加密

    mysql> select password('root');
    +-------------------------------------------+
    | password('root')                          |
    +-------------------------------------------+
    | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
    +-------------------------------------------+
    1 row in set (0.00 sec)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    ifnull(val1,val2):如果val1值为null,返回val2,否则返回val1,有点像三目运算符 val1 != null ? val1 : val2;

  • 相关阅读:
    UI 设计的未来发展
    jQuery 遍历-后代深入解析分析【前端jQuery框架】
    gStore最新版本1.0之自定义图分析算子
    【Linux篇】之samba服务器配置
    【数仓】大数据开发全流程 - 实习总结
    [ MSF使用实例 ] 利用MS12-020漏洞导致windows靶机蓝屏
    遇到bug的解决办法,测试再也不背锅了
    Elasticsearch 范围查询
    计算机毕业设计(附源码)python原创网络文学管理系统
    SQL基础练习题(mysql)
  • 原文地址:https://blog.csdn.net/qq_45967533/article/details/126310993