mysql函数汇总_Mysql 常用函数汇总

本文详细介绍了MySQL中日期时间函数的使用,包括获取当前日期时间、格式转换、星期几的获取以及年月日时分秒的提取。此外,还讲解了字符串处理函数,如字符串拼接、截取、替换等操作,并展示了数学函数和控制流程函数的应用。同时,提到了加密函数password和md5在数据安全中的作用。
摘要由CSDN通过智能技术生成

☆日期函数

日期符号对应关系

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.03sec)> select substring('123456', 3, 2); #从第三个开始,只截2个+---------------------------+

| substring('123456', 3, 2) |

+---------------------------+

| 34 |

+---------------------------+

1 row in set (0.03sec)> select substring('123456', -3); #从倒数第3个开始+-------------------------+

| substring('123456', -3) |

+-------------------------+

| 456 |

+-------------------------+

1 row in set (0.03sec)> select substring('123456', -3, 2); # 从倒数第3个开始,只截2个+----------------------------+

| substring('123456', -3, 2) |

+----------------------------+

| 45 |

+----------------------------+

1 row in set (0.03sec)> 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 |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值