MySQL函数

场景:使用MySQL函数

记录:NO.250

体验MySQL的函数,MySQL版本5.7.33,版本查询:SELECT VERSION()。

一、字符串类函数

LENGTH函数: 计算字符串长度,返回字符串的字节长度。

SELECT LENGTH('FuJian');

执行结果: 6

CONCAT函数: 合并字符串,返回结果为连接参数产生的字符串,参数可以是一个或多个

SELECT CONCAT('厦门','在','福建');

执行结果: 厦门在福建

INSERT函数: 替换字符串

SELECT INSERT('XiaMEN',4,3,'Men');

执行结果: XiaMen

LOWER函数: 将字符串中的字母转换为小写

SELECT LOWER('XIAMEN');

执行结果: xiamen

UPPER函数: 将字符串中的字母转换为大写

SELECT UPPER('xiaMen');

执行结果: XIAMEN

LEFT函数: 从左侧字截取符串,返回字符串左边的指定个数字符

SELECT LEFT('XiaMen In FuJian',6);

执行结果: XiaMen

RIGHT函数: 从右侧字截取符串,返回字符串左边的指定个数字符

SELECT RIGHT('XiaMen In FuJian',6);

执行结果: FuJian

TRIM函数: 删除字符串左右两侧的空格

SELECT TRIM('  厦门在福建  ');

执行结果: 厦门在福建

REPLACE函数: 字符串替换函数,返回替换后的新字符串

SELECT REPLACE('厦门在福建','厦门','福州');

执行结果: 福州在福建

SUBSTR函数: 截取字符串,返回从指定位置开始的指定长度的字符串

SELECT SUBSTR('XiaMen,FuZhou',1,6);

执行结果: XiaMen

REVERSE函数: 字符串反转(逆序),返回与原始字符串顺序相反的字符串

SELECT REVERSE('ABCDEF');

执行结果: FEDCBA

二、日期时间类函数

CURDATE函数: 返回当前系统的日期值

SELECT CURDATE();

执行结果: 2021-06-23

CURRENT_DATE函数: 返回当前系统的日期值

SELECT CURRENT_DATE();

执行结果: 2021-06-23

DATE_FORMAT函数: 时间转换为指定格式

SELECT DATE_FORMAT(SYSDATE(),'%Y-%c-%d %H:%i:%s');

执行结果: 2021-6-23 22:45:19

CURTIME函数: 返回当前系统的时间值

SELECT CURTIME();

执行结果: 22:45:46

CURRENT_TIME函数: 返回当前系统的时间值

SELECT CURRENT_TIME();

执行结果: 22:46:12

NOW函数: 返回当前系统的日期和时间值

SELECT NOW();

执行结果: 2021-06-23 22:46:26

SYSDATE函数: 返回当前系统的日期和时间值

SELECT SYSDATE();

执行结果: 2021-06-23 22:46:49

函数: 获取UNIX时间戳,返回一个以UNIX时间戳为基础的无符号整数

SELECT UNIX_TIMESTAMP();

执行结果: 1624459631

FROM_UNIXTIME函数: 将UNIX时间戳转换为时间格式

SELECT FROM_UNIXTIME(1624459631);

执行结果: 2021-06-23 22:47:11

MONTH函数: 获取指定日期中的月份

SELECT MONTH('2021-6-23 23:17:33');

执行结果: 6

MONTHNAME函数: 获取指定日期中的月份英文名称

SELECT MONTHNAME('2021-6-23 23:17:33');

执行结果: June

DAYNAME函数: 获取指定日期对应的星期几的英文名称

SELECT DAYNAME('2021-6-23 23:17:33');

执行结果: Wednesday

DAYOFWEEK函数: 获取指定日期对应的一周的索引位置值

SELECT DAYOFWEEK('2021-6-23 23:17:33');

执行结果: 4

WEEK函数: 获取指定日期是一年中的第几周

SELECT WEEK('2021-6-23 23:17:33');

执行结果: 25

DAYOFYEAR函数: 获取指定日期是一年中的第几天

SELECT DAYOFYEAR('2021-6-23 23:17:33');

执行结果: 174

DAYOFMONTH函数: 获取指定日期是一个月中是第几天

SELECT DAYOFMONTH('2021-6-23 23:17:33');

执行结果: 23

YEAR函数: 获取年份

SELECT YEAR('2021-6-23 23:17:33');

执行结果: 2021

TIME_TO_SEC函数: 将时间参数转换为秒数

SELECT TIME_TO_SEC('2021-6-23 23:17:33');

执行结果: 83853

SEC_TO_TIME函数: 将秒数转换为时间

SELECT SEC_TO_TIME('83853');

执行结果: 23:17:33.000000

DATE_ADD函数: 日期添加指定的时间间隔

SELECT DATE_ADD(NOW(),INTERVAL 1 HOUR);

执行结果: 2021-06-24 00:22:17

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 MICROSECOND);

执行结果: 2021-06-23 23:17:33.000001

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 SECOND);

执行结果: 2021-06-23 23:17:34

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 MINUTE);

执行结果: 2021-06-23 23:18:33

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 HOUR);

执行结果: 2021-06-24 00:17:33

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 DAY);

执行结果: 2021-06-24 23:17:33

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 WEEK);

执行结果: 2021-06-30 23:17:33

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 MONTH);

执行结果: 2021-07-23 23:17:33

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 QUARTER);

执行结果: 2021-09-23 23:17:33

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 YEAR);

执行结果: 2022-06-23 23:17:33

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 SECOND_MICROSECOND);

执行结果: 2021-06-23 23:17:33.100000

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 MINUTE_MICROSECOND);

执行结果: 2021-06-23 23:17:33.100000

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 MINUTE_SECOND);

执行结果: 2021-06-23 23:17:34

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 HOUR_MICROSECOND);

执行结果: 2021-06-23 23:17:33.100000

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 HOUR_SECOND);

执行结果: 2021-06-23 23:17:34

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 HOUR_MINUTE);

执行结果: 2021-06-23 23:18:33

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 DAY_MICROSECOND);

执行结果: 2021-06-23 23:17:33.100000

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 DAY_SECOND);

执行结果: 2021-06-23 23:17:34

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 DAY_MINUTE);

执行结果: 2021-06-23 23:18:33

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 DAY_HOUR);

执行结果: 2021-06-24 00:17:33

SELECT DATE_ADD('2021-06-23 23:17:33',INTERVAL 1 YEAR_MONTH);

执行结果: 2021-07-23 23:17:33

ADDDATE函数: 日期添加指定的时间间隔

SELECT ADDDATE('2021-06-23 23:17:33',INTERVAL 1 SECOND);

执行结果: 2021-06-23 23:17:34

DATE_SUB函数: 日期减去指定的时间间隔

SELECT DATE_SUB('2021-06-23 23:17:33',INTERVAL 1 SECOND);

执行结果: 2021-06-23 23:17:32

SELECT DATE_SUB('2021-06-23 23:17:33',INTERVAL 1 MINUTE);

执行结果: 2021-06-23 23:16:33

SELECT DATE_SUB('2021-06-23 23:17:33',INTERVAL 1 HOUR);

执行结果: 2021-06-23 22:17:33

SELECT DATE_SUB('2021-06-23 23:17:33',INTERVAL 1 DAY);

执行结果: 2021-06-22 23:17:33

SELECT DATE_SUB('2021-06-23 23:17:33',INTERVAL 1 MONTH);

执行结果: 2021-05-23 23:17:33

SUBDATE函数: 日期减去指定的时间间隔

SELECT SUBDATE('2021-06-23 23:17:33',INTERVAL 1 SECOND);

执行结果: 2021-06-23 23:17:32

ADDTIME函数: 时间加法运算,在原始时间上添加指定的时间

SELECT ADDTIME('2021-06-23 22:17:33','01:03:05');

执行结果: 2021-06-23 23:20:38

SELECT ADDTIME('22:17:33','01:03:05');

执行结果: 23:20:38

SUBTIME函数: 时间减法运算,在原始时间上减去指定的时间

SELECT SUBTIME('2021-06-23 22:17:33','01:03:05');

执行结果: 2021-06-23 21:14:28

SELECT SUBTIME('22:17:33','01:03:05');

执行结果: 21:14:28

DATEDIFF函数: 获取两个日期之间间隔

SELECT DATEDIFF('2021-06-23','2021-05-23');

执行结果: 31

WEEKDAY函数: 获取指定日期在一周内的对应的工作日索引

SELECT WEEKDAY('2021-06-23');

三、数值计算类函数

ABS函数: 求绝对值

SELECT ABS(-1.567);

执行结果: 1.567

SQRT函数: 求二次方根

SELECT SQRT(9);

执行结果: 3

MOD函数: 求余数

SELECT MOD(9,5);

执行结果: 4

CEIL函数: 向上取整

SELECT CEIL(6.89);

执行结果: 7

CEILING函数: 向上取整

SELECT CEILING(6.89);

执行结果: 7

FLOOR函数: 向下取整

SELECT FLOOR(6.89);

执行结果: 6

RAND函数: 生成一个0~1之间的随机数

SELECT RAND();

执行结果: 0.7170911950218409

ROUND函数: 四舍五入

SELECT ROUND(6.89,1);

执行结果: 6.9

SIGN函数: 返回参数的符号

SELECT SIGN(6.89);

执行结果: 1

POW函数: 参数次方的结果值

SELECT POW(2,3);

执行结果: 8

POWER函数: 参数次方的结果值

SELECT POWER(2,3);

执行结果: 8

SIN函数: 求正弦值

SELECT SIN(30);

执行结果: -0.9880316240928618

ASIN函数: 求反正弦值

SELECT ASIN(0.689);

执行结果: 0.7601083816679577

COS函数: 求余弦值

SELECT COS(30);

执行结果: 0.15425144988758405

ACOS函数: 求反余弦值

SELECT ACOS(0.689);

执行结果: 0.810687945126939

TAN函数: 求正切值

SELECT TAN(0.689);

执行结果: 0.8236563114169484

ATAN函数: 求反正切值

SELECT ATAN(0.689);

执行结果: 0.6033052006543151

COT函数: 求余切值

SELECT COT(0.689);

执行结果: 1.214098630871516

四、聚合函数

MAX函数: 查询指定列的最大值

SELECT MAX(T.ID) FROM t_function T;

执行结果: 99999

MIN函数: 查询指定列的最小值

SELECT MIN(T.ID) FROM t_function T;

执行结果: 1

COUNT函数: 统计查询结果的行数

SELECT COUNT(1) FROM t_function T;

执行结果: 6

SUM函数: 返回指定列的总和

SELECT SUM(T.ID) FROM t_function T;

执行结果: 111106

AVG函数: 返回指定列数据的平均值

SELECT AVG(T.ID) FROM t_function T;

执行结果: 18517.6667

五、其它函数

IF函数:

SELECT IF(T.ID>99,T.ID,100) AS result FROM t_function T;

执行结果: 

                                

IFNULL函数:

SELECT IFNULL(T.ID,100) AS result FROM t_function T;

执行结果: 

                        ​​​​​​​        

CASE WHEN句法使用

SELECT
   T.ID,
  CASE
    WHEN T.ID < 100
    THEN '低端'
    WHEN T.ID >= 100
    AND T.ID < 9000
    THEN '中端'  WHEN T.ID >= 9000
    THEN '高端'
    ELSE '其它'  END AS LL
FROM
  t_function T;

执行结果: 

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

六、附件

建表语句:

CREATE TABLE t_function (
  ID BIGINT(18) NOT NULL COMMENT '标识',
  INSERT_TIME DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '写入时间'
) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='聚合函数-体验';

数据:

INSERT INTO t_function (ID) VALUES(1);
INSERT INTO t_function (ID) VALUES(9);
INSERT INTO t_function (ID) VALUES(99);
INSERT INTO t_function (ID) VALUES(999);
INSERT INTO t_function (ID) VALUES(9999);
INSERT INTO t_function (ID) VALUES(99999);

时间类型:

序号Type 值
1MICROSECOND
2SECOND
3MINUTE
4HOUR
5DAY
6WEEK
7MONTH
8QUARTER
9YEAR
10SECOND_MICROSECOND
11MINUTE_MICROSECOND
12MINUTE_SECOND
13HOUR_MICROSECOND
14HOUR_SECOND
15HOUR_MINUTE
16DAY_MICROSECOND
17DAY_SECOND
18DAY_MINUTE
19DAY_HOUR
20YEAR_MONTH

以上,感谢。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值