• Mysql 常用函数汇总


    ☆日期函数

    日期符号对应关系

    Y m d H i s

    获取当前日期 now()

    > select now();
    +---------------------+
    | now()               |
    +---------------------+
    | 2020-06-02 22:21:20 |
    +---------------------+
    1 row in set (0.03 sec)

    获取当前时间戳 current_timestamp

    > select current_timestamp, current_timestamp();
    +---------------------+---------------------+
    | current_timestamp   | current_timestamp() |
    +---------------------+---------------------+
    | 2020-06-02 22:23:27 | 2020-06-02 22:23:27 |
    +---------------------+---------------------+

    格式转换: 时间->字符串 date_format

    > select date_format('2020-10-18 22:23:01', '%Y-%m-%d %H%i%s');
    +-------------------------------------------------------+
    | date_format('2020-10-18 22:23:01', '%Y-%m-%d %H%i%s') |
    +-------------------------------------------------------+
    | 2020-10-18 222301                                     |
    +-------------------------------------------------------+

    格式转换: 字符串->时间 str_to_date

    > select str_to_date('08/09/2008', '%m/%d/%Y');
    +---------------------------------------+
    | str_to_date('08/09/2008', '%m/%d/%Y') |
    +---------------------------------------+
    | 2008-08-09                            |
    +---------------------------------------+
    1 row in set (0.03 sec)

    星期几DAYOFWEEK 

    周日1,周一2...周六7

    > select now(), dayofweek(now());
    +---------------------+------------------+
    | now()               | dayofweek(now()) |
    +---------------------+------------------+
    | 2020-06-03 21:48:03 |                4 |

    获取年月日时分秒周

    > select now(), dayofweek(now()), year(now()), month(now()), day(now()), hour(now()), minute(now()), second(now()),week(now());
    +---------------------+------------------+-------------+--------------+------------+-------------+---------------+---------------+-------------+
    | now()               | dayofweek(now()) | year(now()) | month(now()) | day(now()) | hour(now()) | minute(now()) | second(now()) | week(now()) |
    +---------------------+------------------+-------------+--------------+------------+-------------+---------------+---------------+-------------+
    | 2020-06-03 21:50:13 |                4 |        2020 |            6 |          3 |          21 |            50 |            13 |          22 |

    ☆字符串处理

    字符串拼接 concat

    将多个字符串连接成一个字符串

    > select concat('2020', '/', '12', '/', '20');
    +--------------------------------------+
    | concat('2020', '/', '12', '/', '20') |
    +--------------------------------------+
    | 2020/12/20                           |
    +--------------------------------------+

    以第一个字符为拼接符:concat_ws

    > select concat_ws('/', '2020', '12', '20');
    +------------------------------------+
    | concat_ws('/', '2020', '12', '20') |
    +------------------------------------+
    | 2020/12/20                         |
    +------------------------------------+

    字符串截取:left, right, substring

    > select left('123456', 3), right('123456', 3), left('123', 100);
    +-------------------+--------------------+------------------+
    | left('123456', 3) | right('123456', 3) | left('123', 100) |
    +-------------------+--------------------+------------------+
    | 123               | 456                | 123              |
    +-------------------+--------------------+------------------+

    substring

    用法:substring(字符串, 位置, 长度)

    > select substring('123456', 3);   # 从第3个开始截取
    +------------------------+
    | substring('123456', 3) |
    +------------------------+
    | 3456                   |
    +------------------------+
    1 row in set (0.03 sec)
    
    > select substring('123456', 3, 2);   #从第三个开始,只截2个
    +---------------------------+
    | substring('123456', 3, 2) |
    +---------------------------+
    | 34                        |
    +---------------------------+
    1 row in set (0.03 sec)
    
    > select substring('123456', -3);   #从倒数第3个开始
    +-------------------------+
    | substring('123456', -3) |
    +-------------------------+
    | 456                     |
    +-------------------------+
    1 row in set (0.03 sec)
    
    > select substring('123456', -3, 2);  # 从倒数第3个开始,只截2个
    +----------------------------+
    | substring('123456', -3, 2) |
    +----------------------------+
    | 45                         |
    +----------------------------+
    1 row in set (0.03 sec)
    
    > select substring('123456', -3, -2);  # 第三个参数是长度,为正有意义
    +-----------------------------+
    | substring('123456', -3, -2) |
    +-----------------------------+
    |                             |
    +-----------------------------+

    按关键字截取 substring_index

    用法substring_index(str, delim, count),即:substring_index(被截取字符串,关键字,关键字出现的次数)

    > select substring_index('123aaa3bb3dd', '3', 1);
    +-----------------------------------------+
    | substring_index('123aaa3bb3dd', '3', 1) |
    +-----------------------------------------+
    | 12                                      |
    +-----------------------------------------+
    
    > select substring_index('123aaa3bb3dd', '3', 2);
    +-----------------------------------------+
    | substring_index('123aaa3bb3dd', '3', 2) |
    +-----------------------------------------+
    | 123aaa                                  |
    +-----------------------------------------+

    最左边字符的ascii码

    >select ASCII(2), ASCII('2'), ASCII('22');
    +----------+------------+-------------+
    | ASCII(2) | ASCII('2') | ASCII('22') |
    +----------+------------+-------------+
    |       50 |         50 |          50 |

    字符串长度 LENGHT

    >select length('abc'), length(333333);
    +---------------+----------------+
    | length('abc') | length(333333) |
    +---------------+----------------+
    |             3 |              6 |

    一字符串在另一个字符串中的位置 locate(substr, str), instr(str, substr) 

    返回substr在str出现的第一个位置,如果在则>0;否则为0

    > select locate('abc', 'mmabcmm'), locate('abc', 'aaaaaa');
    +--------------------------+-------------------------+
    | locate('abc', 'mmabcmm') | locate('abc', 'aaaaaa') |
    +--------------------------+-------------------------+
    |                        3 |                       0 |
    +--------------------------+-------------------------+
    
    
    > select instr('abc', 'a'), locate('abc', 'aa');
    +-------------------+---------------------+
    | instr('abc', 'a') | locate('abc', 'aa') |
    +-------------------+---------------------+
    |                 1 |                   0 |
    +-------------------+---------------------+

    替换REPLACE

    > select replace('www.baidu.com.ww', 'ww', '&&');
    +-----------------------------------------+
    | replace('www.baidu.com.ww', 'ww', '&&') |
    +-----------------------------------------+
    | &&w.baidu.com.&&                        |

    指定位置字符替换

    insert(con, pos, len, anotherstr), 把字符con, 从第pos(从1开始计数)的len个字符由anotherstr替换

    > select insert('123456', 3, 3, 'aaaaa');
    +---------------------------------+
    | insert('123456', 3, 3, 'aaaaa') |
    +---------------------------------+
    | 12aaaaa6                        |

    重复REPEAT

    > select repeat('abc', 3);
    +------------------+
    | repeat('abc', 3) |
    +------------------+
    | abcabcabc        |

    翻转REVERSE

    > select reverse('abc');
    +----------------+
    | reverse('abc') |
    +----------------+
    | cba            |

    ☆数学函数

    绝对值ABS, 取余MOD

    > select abs(-3.2), mod(3, 4);
    +-----------+-----------+
    | abs(-3.2) | mod(3, 4) |
    +-----------+-----------+
    |       3.2 |         3 |
    +-----------+-----------+

    四舍五入 ROUND

    select round(1.49), round(1.50);
    +-------------+-------------+
    | round(1.49) | round(1.50) |
    +-------------+-------------+
    |           1 |           2 |
    +-------------+-------------+

    不大于x的最大整数FLOOR,不小于x的最小整数CEILING

    > select FLOOR(-1.23), FLOOR(1.23), CEILING(-1.23), CEILING(1.23);
    +--------------+-------------+----------------+---------------+
    | FLOOR(-1.23) | FLOOR(1.23) | CEILING(-1.23) | CEILING(1.23) |
    +--------------+-------------+----------------+---------------+
    |           -2 |           1 |             -1 |             2 |

    ☆控制流程函数 

    条件控制 case when then 

    > select case when 1 < 0 then 'a' when 2 > 1 then 'b' else 'c' end;
    +-----------------------------------------------------------+
    | case when 1 < 0 then 'a' when 2 > 1 then 'b' else 'c' end |
    +-----------------------------------------------------------+
    | b                                                         |

    ☆加密函数 

    password 一般对用户密码加密

    > select password('a');
    +-------------------------------------------+
    | password('a')                             |
    +-------------------------------------------+
    | *667F407DE7C6AD07358FA38DAED7828A72014B4E |

    md5一般对普通数据加密

    > select md5('abc');
    +----------------------------------+
    | md5('abc')                       |
    +----------------------------------+
    | 900150983cd24fb0d6963f7d28e17f72 |

    加密ENCODE, 解密DECODE

    encode(str, pwd_str), decode(str, pwd_str), 使用pwd_str对str进行加密、解密

    select encode('abc', '123'), decode(encode('abc', '123'), '123');
    +----------------------+-------------------------------------+
    | encode('abc', '123') | decode(encode('abc', '123'), '123') |
    +----------------------+-------------------------------------+
    | ���                  | abc                                 |
  • 相关阅读:
    BOM和DOM的操作
    JS介绍
    CSS
    HTML的用法
    JSP获取json格式的数据报错 Uncaught SyntaxError: Unexpected identifier
    jquery.nicescroll.min.js滚动条插件的用法
    css鼠标滑过出现文字效果
    sublime text3安装js提示的插件
    利用after和before伪元素在文字两边写横线
    html+css居中问题
  • 原文地址:https://www.cnblogs.com/kaituorensheng/p/13034500.html
Copyright © 2020-2023  润新知