之前简单写了一下 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
相反,获取最小值。
因为 MIN
和 MAX
的功能差不多,这里就不演示了。
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 加密。