零基础入门 SQL 系列之(四)内置函数

MySQL 内置了许多函数,包括数值函数、字符串函数以及日期函数。

我们首先来看下常用的数值函数。

ABS(x) – 返回 x 的绝对值。
SELECT ABS(-1);
SELECT ABS(1);
CEIL(x) – 返回大于或等于 x 的最小整数。
SELECT ceil(1.5);
SELECT ceil(2);
FLOOR(x) – 返回小于或等于 x 的最大整数。
SELECT FLOOR(1.5);
SELECT FLOOR(2)
RAND(x) – 返回 0~1 之间的随机数。
SELECT RAND();
ROUND() – 函数用于数据的四舍五入。

ROUND(x, d), x 指要处理的数,d 是指保留几位小数。

SELECT ROUND(5.45, 1)

ROUND(x), 其实就是 ROUND(x,0), 也就是默认 d 为 0。

SELECT ROUND(5.45);
TRUNCATE(x, y) – 返回数据 x 保留到小数点后 y 位的值。
SELECT TRUNCATE(5.45, 1);
POWER(x, y) – 返回 x 的 y 次方。
SELECT POWER(3, 2);
SQRT(x) – 返回 x 的平方根。
SELECT SQRT(25);
MOD(x, y) – 返回 x 除以 y 以后的余数。
SELECT MOD(8, 3);

字符串函数

TRIM(s) – 去除字符串s首尾的空格。
SELECT TRIM('   hello world!   ');
LTRIM(s) – 去除字符串s首部的空格。
SELECT LTRIM('   hello world!   ');
RTRIM(s) – 去除字符串s尾部的空格。
SELECT RTRIM('   hello world!   ');
UPPER(s) – 将字符串s大写。
SELECT UPPER('Hello World!');
LOWER(s) – 将字符串s小写。
SELECT LOWER('Hello World!');
LENGTH(s) – 返回字符串s的长度。
SELECT LENGTH('Hello World!');
LEFT(s, n) – 返回字符串 s 的前n个字符。
SELECT LEFT('Hello World!', 5);
RIGHT(s, n) – 返回字符串 s 的后n个字符。
SELECT RIGHT('Hello World!', 5);
SUBSTRING(s, n) – 返回从字符串s中的第n个位置开始的字符串
SELECT SUBSTRING('Hello World!', 5);
SUBSTRING(s, n, len) – 返回从字符串s中的第n个位置开始长度为len的字符串
SELECT SUBSTRING('Hello World!', 5, 5);
CONCAT(s1, s2) – 将字符串s1, s2等多个字符串合并为一个字符串
SELECT CONCAT('Hello', ' World!');

日期和时间函数

NOW() – 返回当前时间的日期和时间
SELECT NOW();
CURDATE() – 返回当前时间的年月日
SELECT CURDATE()
CURTIME() – 返回当前时间的时分秒
SELECT CURTIME();
YEAR(d) – 返回d中的年份值
SELECT YEAR(NOW());
MONTH(d) – 返回d中的月份值
SELECT MONTH(NOW());
DAY(d) – 返回d中的天值
SELECT DAY(NOW())
HOUR(d) – 返回d中的小时值
SELECT HOUR(NOW());
MINUTE(d) – 返回d中的分钟值
SELECT MINUTE(NOW());
SECOND(d) – 返回d中的秒值
SELECT SECOND(NOW());
QUARTER(d) – 返回日期d是第几季度
SELECT QUARTER(NOW());
MONTHNAME(d) – 返回d当中的月份名称
SELECT MONTHNAME(NOW());
DAYNAME(d) – 返回d是星期几
SELECT DAYNAME(NOW());
DAYOFWEEK(d) – 返回日期d是星期的第几天
SELECT DAYOFWEEK(NOW());
DAYOFMONTH(d) – 返回日期d是本月的第几天
SELECT DAYOFMONTH(NOW());
DAYOFYEAR(d) – 返回日期d是本年的第几天
SELECT DAYOFYEAR(NOW());
DATE_ADD(d, INTERVAL n DAY) – 计算日期d加上n天的日期
SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY);
DATE_SUB(d, INTERVAL n DAY) – 计算日期d减去n天的日期
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY);
DATEDIFF(d1, d2) – 计算日期d1和d2相差的天数
SELECT DATEDIFF('2020-01-10', '2020-01-02');
DATE_FORMAT(d, format) – 格式化日期
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');
UNIX_TIMESTAMP() – 返回时间戳
SELECT UNIX_TIMESTAMP(NOW());
FROM_UNIXTIME() – 将时间戳格式化为时间
SELECT FROM_UNIXTIME(1595323516, '%Y-%m-%d %H:%m:%s');

DATE_FORMATFROM_UNIXTIME 的区别在于,DATE_FORMAT 的第一个参数为日期,FROM_UNIXTIME 的第一个参数为时间戳。

备注:示例中用到的表和数据可以通过链接(https://github.com/songw/sql)下载。

本系列目录:
零基础入门 SQL 系列之(一)查询数据
零基础入门 SQL 系列之(二)排序
零基础入门 SQL 系列之(三)过滤数据
零基础入门 SQL 系列之(四)内置函数
零基础入门 SQL 系列之(五)数据汇总
零基础入门 SQL 系列之(六)表连接
零基础入门 SQL 系列之(七)组合
零基础入门 SQL 系列之(八)插入、更新、删除
零基础入门 SQL 系列之(九)创建和操作表
零基础入门 SQL 系列之(十)视图

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值