MySQL 系统函数
Halo 数据库在 MySQL 兼容模式下支持以下系统函数。
日期函数
支持的日期函数包括:
CURDATE / CURRENT_DATE | CURTIME / CURRENT_TIME | NOW | SYSDATE |
UNIX_TIMESTAMP | FROM_UNIXTIME | MONTH | MONTHNAME |
DAYNAME | DAYOFWEEK | WEEK | DAYOFYEAR |
DAYOFMONTH | YEAR | TIME_TO_SEC | TO_DAYS |
SEC_TO_TIME | DATE_ADD / ADDDATE | DATE_SUB / SUBDATE | ADDTIME |
SUBTIME | DATEDIFF | DATE_FORMAT | YEARWEEK |
WEEKDAY |
mysql> SELECT CURDATE() AS today, NOW() AS now;
+------------+---------------------+
| today | now |
+------------+---------------------+
| 2026-07-28 | 2026-07-28 17:45:31 |
+------------+---------------------+
mysql> SELECT DATE_ADD(NOW(), INTERVAL 1 DAY) AS tomorrow;
+---------------------+
| tomorrow |
+---------------------+
| 2026-07-29 17:45:31 |
+---------------------+
mysql> SELECT DATEDIFF('2026-12-31', '2026-01-01') AS days_diff;
+-----------+
| days_diff |
+-----------+
| 364 |
+-----------+
mysql> SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS formatted;
+---------------------+
| formatted |
+---------------------+
| 2026-07-28 17:45:31 |
+---------------------+
字符串函数
支持的字符串函数包括:
LENGTH | CONCAT | INSERT | LOWER |
UPPER | LEFT | RIGHT | TRIM |
REPLACE | SUBSTRING | REVERSE | FIND_IN_SET |
GROUP_CONCAT |
mysql> SELECT CONCAT('Hello', ' ', 'World') AS greeting;
+-------------+
| greeting |
+-------------+
| Hello World |
+-------------+
mysql> SELECT LENGTH('Hello') AS len, UPPER('hello') AS upper, LOWER('WORLD') AS lower;
+------+-------+-------+
| len | upper | lower |
+------+-------+-------+
| 5 | HELLO | world |
+------+-------+-------+
数值函数
支持的数值函数包括:
ABS | SQRT | MOD | CEIL / CEILING |
FLOOR | RAND | ROUND | SIGN |
POW / POWER | SIN | ASIN | COS |
ACOS | TAN | ATAN | COT |
mysql> SELECT ABS(-10) AS abs, SQRT(25) AS sqrt, MOD(10, 6) AS mod, ROUND(3.14159, 2) AS round;
+------+------+------+-------+
| abs | sqrt | mod | round |
+------+------+------+-------+
| 10 | 5 | 4 | 3.14 |
+------+------+------+-------+
mysql> SELECT CEIL(3.14) AS ceil, FLOOR(3.75) AS floor, SIGN(-5) AS sign, POW(2, 3) AS pow;
+------+-------+------+------+
| ceil | floor | sign | pow |
+------+-------+------+------+
| 4 | 3 | -1 | 8 |
+------+-------+------+------+
加密函数
支持 MD5 等加密函数。
mysql> SELECT MD5('Hello World') AS md5;
+----------------------------------+
| md5 |
+----------------------------------+
| b10a8db164e0754105b7a99be72e3fe5 |
+----------------------------------+
流程控制函数
支持 IF、IFNULL、CASE 等流程控制函数。
mysql> SELECT IF(1=1, 'true', 'false') AS if_result;
+-----------+
| if_result |
+-----------+
| true |
+-----------+
mysql> SELECT IFNULL(NULL, 'default') AS ifnull_result;
+---------------+
| ifnull_result |
+---------------+
| default |
+---------------+
聚合函数
支持 MAX、MIN、COUNT、SUM、AVG 等聚合函数。
mysql> CREATE TABLE test (a INT);
mysql> INSERT INTO test VALUES (2), (3);
mysql> SELECT MAX(a), MIN(a), COUNT(a), SUM(a), AVG(a) FROM test;
+------+------+-------+------+--------------------+
| max | min | count | sum | avg |
+------+------+-------+------+--------------------+
| 3 | 2 | 2 | 5 | 2.5000000000000000 |
+------+------+-------+------+--------------------+