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

# 1.数值函数

我们首先来看下常用的数值函数。 1.ABS(x) -- 返回 x 的绝对值。

SELECT ABS(-1);
1

运行结果如下:

image.png

SELECT ABS(1);
1

运行结果如下: image.png

2.CEIL(x) -- 返回大于或等于 x 的最小整数。

SELECT ceil(1.5);
1

运行结果如下:

image.png

SELECT ceil(2);
1

运行结果如下:

image.png

3.FLOOR(x) -- 返回小于或等于 x 的最大整数。

SELECT FLOOR(1.5);
1

运行结果如下:

image.png

SELECT FLOOR(2);
1

运行结果如下:

image.png

4.RAND(x) -- 返回 0~1 之间的随机数。

SELECT RAND();
1

运行结果如下:

image.png

5.ROUND() -- 函数用于数据的四舍五入,它有两种形式: (1).ROUND(x, d), x 指要处理的数,d 是指保留几位小数。 (2).ROUND(x), 其实就是 ROUND(x,0), 也就是默认 d 为 0。

SELECT ROUND(5.45, 1);
1

运行结果如下:

image.png

SELECT ROUND(5.45);
1

运行结果如下:

image.png

6.TRUNCATE(x, y) -- 返回数据 x 保留到小数点后 y 位的值。

SELECT TRUNCATE(5.45, 1);
1

运行结果如下:

image.png

7.POWER(x, y) -- 返回 x 的 y 次方。

SELECT POWER(3, 2);
1

运行结果如下:

image.png

8.SQRT(x) -- 返回 x 的平方根。

SELECT SQRT(25);
1

运行结果如下:

image.png

9.MOD(x, y) -- 返回 x 除以 y 以后的余数。

SELECT MOD(8, 3);
1

运行结果如下:

image.png

# 2.字符串函数

1.TRIM(s) -- 去除字符串s首尾的空格。

SELECT TRIM('   hello world!   ');
1

运行结果如下:

image.png

2.LTRIM(s) -- 去除字符串s首部的空格。

SELECT LTRIM('   hello world!   ');
1

运行结果如下:

image.png

3.RTRIM(s) -- 去除字符串s尾部的空格。

SELECT RTRIM('   hello world!   ');
1

运行结果如下:

image.png

4.UPPER(s) -- 将字符串s大写

SELECT UPPER('Hello World!');
1

运行结果如下:

image.png

5.LOWER(s) -- 将字符串s小写

SELECT LOWER('Hello World!');
1

运行结果如下:

image.png

6.LENGTH(s) -- 返回字符串s的长度

SELECT LENGTH('Hello World!');
1

运行结果如下:

image.png

7.LEFT(s, n) -- 返回字符串 s 的前n个字符

SELECT LEFT('Hello World!', 5);
1

运行结果如下:

image.png

8.RIGHT(s, n) -- 返回字符串 s 的后n个字符

SELECT RIGHT('Hello World!', 5);
1

运行结果如下:

image.png

9.SUBSTRING(s, n) -- 返回从字符串s中的第n个位置开始的字符串

SELECT SUBSTRING('Hello World!', 5);
1

运行结果如下:

image.png

10.SUBSTRING(s, n, len) -- 返回从字符串s中的第n个位置开始长度为len的字符串。

SELECT SUBSTRING('Hello World!', 5, 5);
1

运行结果如下:

image.png

11.CONCAT(s1, s2) -- 将字符串s1, s2等多个字符串合并为一个字符串。

SELECT CONCAT('Hello', ' World!');
1

运行结果如下:

image.png

# 3.日期和时间函数

1.NOW() -- 返回当前时间的日期和时间

SELECT NOW();
1

运行结果如下:

image.png

2.CURDATE() -- 返回当前时间的年月日

SELECT CURDATE();
1

运行结果如下:

image.png

3.CURTIME() -- 返回当前时间的时分秒

SELECT CURTIME();
1

运行结果如下:

image.png

4.YEAR(d) -- 返回d中的年份值

SELECT YEAR(NOW());
1

运行结果如下:

image.png

5.MONTH(d) -- 返回d中的月份值

SELECT MONTH(NOW());
1

运行结果如下:

image.png

6.DAY(d) -- 返回d中的天值

SELECT DAY(NOW());
1

运行结果如下:

image.png

7.HOUR(d) -- 返回d中的小时值

SELECT HOUR(NOW());
1

运行结果如下:

image.png

8.MINUTE(d) -- 返回d中的分钟值

SELECT MINUTE(NOW());
1

运行结果如下:

image.png

9.SECOND(d) -- 返回d中的秒值

SELECT SECOND(NOW());
1

运行结果如下:

image.png

10.QUARTER(d) -- 返回日期d是第几季度

SELECT QUARTER(NOW());
1

运行结果如下:

image.png

11.MONTHNAME(d) -- 返回d当中的月份名称

SELECT MONTHNAME(NOW());
1

运行结果如下:

image.png

12.DAYNAME(d) -- 返回d是星期几

SELECT DAYNAME(NOW());
1

运行结果如下:

image.png

13.DAYOFWEEK(d) -- 返回日期d是星期的第几天

SELECT DAYOFWEEK(NOW());
1

运行结果如下:

image.png

14.DAYOFMONTH(d) -- 返回日期d是本月的第几天

SELECT DAYOFMONTH(NOW());
1

运行结果如下:

image.png

15.DAYOFYEAR(d) -- 返回日期d是本年的第几天

SELECT DAYOFYEAR(NOW());
1

运行结果如下:

image.png

16.DATE_ADD(d, INTERVAL n DAY) -- 计算日期d加上n天的日期

SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY);
1

运行结果如下:

image.png

17.DATE_SUB(d, INTERVAL n DAY) -- 计算日期d减去n天的日期

SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY);
1

运行结果如下:

image.png

18.DATEDIFF(d1, d2) -- 计算日期d1和d2相差的天数

SELECT DATEDIFF('2020-01-10', '2020-01-02');
1

运行结果如下:

image.png

19.DATE_FORMAT(d, format) -- 格式化日期

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');
1

运行结果如下:

image.png

20.UNIX_TIMESTAMP() -- 返回时间戳

SELECT UNIX_TIMESTAMP(NOW());
1

运行结果如下:

image.png

21.FROM_UNIXTIME() -- 将时间戳格式化为时间

SELECT FROM_UNIXTIME(1595323516, '%Y-%m-%d %H:%m:%s');
1

运行结果如下:

image.png

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

image.png

# 4.课后题

1.下列哪一个函数可以返回小于或等于 x 的最大整数?

A. ABS(x)

B. FLOOR(x)

C. CEIL(x)

D. RAND(x)

2.下列哪一个操作符可以返回字符串s的长度?

A. UPPER(s)

B. LTRIM(s)

C. LOWER(s)

D. LENGTH(s)

更新于: 12/30/2021, 2:39:56 AM