之前简单写了一下 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 加密。
相关文章: