之前简单写了一下 MySQL 的常用函数。因为内容比较多,写在一起不太方便阅读,所以拆分为 上 下 两篇,顺便也能增加一下文章数量。

这一篇主要包含:日期时间函数、系统信息函数、聚合函数、加密函数。

日期时间函数

NOW()

NOW 的功能是 获取当前日期时间

用法如下:

SELECT NOW()
+---------------------+
| NOW()               |
+---------------------+
| 2019-08-11 23:45:33 |
+---------------------+

DATE_ADD()

DATE_ADD 的功能是 对日期时间进行加减运算

下面运算 2019 年 8 月 12 日 + 31 天

SELECT DATE_ADD('2019-8-12', INTERVAL 31 DAY)
+----------------------------------------+
| DATE_ADD('2019-8-12', INTERVAL 31 DAY) |
+----------------------------------------+
| 2019-09-12                             |
+----------------------------------------+

下面运算 2019 年 8 月 31 日 - 1 年

SELECT DATE_ADD('2019-8-12', INTERVAL - 1 YEAR)
+------------------------------------------+
| DATE_ADD('2019-8-12', INTERVAL - 1 YEAR) |
+------------------------------------------+
| 2018-08-12                               |
+------------------------------------------+

时间的单位就是常见的英语单词。

DATEDIFF()

DATEDIFF 的功能是 计算两个日期之间相差的天数

下面计算 1949 年 10 月 1 日2019 年 10 月 1 日 过去的天数:

SELECT DATEDIFF('2019-10-1', '1949-10-1')
+------------------------------------+
| DATEDIFF('2019-10-1', '1949-10-1') |
+------------------------------------+
|                              25567 |
+------------------------------------+

DATE_FORMAT()

DATE_FORMAT 的功能是 日期时间格式转换

用法如下:

SELECT DATE_FORMAT('2019-7-12', '%m-%d-%Y')
+--------------------------------------+
| DATE_FORMAT('2019-7-12', '%m-%d-%Y') |
+--------------------------------------+
| 07-12-2019                           |
+--------------------------------------+

FROM_UNIXTIME()

FROM_UNIXTIME 的功能是对 Unix 时间戳进行格式化

用法如下:

SELECT FROM_UNIXTIME(159885647, '%Y年%m月%d日 %H:%i:%s')
+---------------------------------------------------+
| FROM_UNIXTIME(159885647, '%Y年%m月%d日 %H:%i:%s') |
+---------------------------------------------------+
| 1975年01月25日 20:40:47                           |
+---------------------------------------------------+

系统信息函数

系统信息函数可以查看 MySQL 相关的信息。

CONNECTION_ID()

CONNECTION_ID 的功能是 查看 MySQL 的连接 ID

如下:

SELECT CONNECTION_ID()
+-----------------+
| CONNECTION_ID() |
+-----------------+
|               2 |
+-----------------+

不同的用户 ID 也会不一样。

DATABASE()

DATABASE 的功能是 查看当前打开的数据库

如下:

SELECT DATABASE()
+------------+
| DATABASE() |
+------------+
| test       |
+------------+

USER()

USER 的功能是 查看当前登录数据库的用户名

如下:

SELECT USER()
+----------------+
| USER()         |
+----------------+
| root@localhost |
+----------------+

VERSION()

VERSION 的功能是 查看 MySQL 版本

如下:

SELECT VERSION()
+-----------+
| VERSION() |
+-----------+
| 5.7.24    |
+-----------+

聚合函数

AVG()

AVG 的功能是 取平均值

下面是一张名为 shopping_cart 的数据表:

+---------------------+-------+
| name                | price |
+---------------------+-------+
| iPhone XS Max       |  9099 |
| iPhone XS           |  8199 |
| MacBook Pro 13      |  9999 |
| MacBook Pro 15      | 18199 |
| 小米9               |  2599 |
| 小米笔记本 Pro 15.6 |  5599 |
+---------------------+-------+

下面获取 price 的平均值:

SELECT AVG(price) AS average_price FROM shopping_cart
+---------------+
| average_price |
+---------------+
|          8949 |
+---------------+

其中的 AS average_price 是设置输出字段的别名为 average_price

MAX()

MAX 的功能是 获取最大值

下面获取 shopping_cart 表中 price 的最大值:

SELECT MAX(price) AS max FROM shopping_cart
+-------+
| max   |
+-------+
| 18199 |
+-------+

MIN()

MIN 的功能和 MAX 相反,获取最小值

因为 MINMAX 的功能差不多,这里就不演示了。

SUM()

SUM 的功能是 求和

下面对 shopping_cart 表中的 price 进行求和:

SELECT SUM(price) AS total_price FROM shopping_cart
+-------------+
| total_price |
+-------------+
|       53694 |
+-------------+

加密函数

md5()

md5 的功能是 对数据进行 md5 加密

下面加密输出 shopping_cart 表的 name 字段:

SELECT MD5(name) AS name FROM shopping_cart
+----------------------------------+
| name                             |
+----------------------------------+
| 74c44f79d2ea51390508b90e3be64b89 |
| 57035d69cca71b5827ba8f97f7ff5060 |
| 8762bc821dc16277694dbcd15680b93b |
| f2a28b60bbcc1945a2a892369a27091b |
| 504a5419781d6505a581e786e5be9dcf |
| 6157229a74bdfaf666ac41f175b2cffa |
+----------------------------------+

注意!md5 加密后的数据是不能解密的,一般存储密码的时候就需要对密码进行 md5 加密。

相关文章: