跳到主要内容

MySQL 系统函数

Halo 数据库在 MySQL 兼容模式下支持以下系统函数。

日期函数​

支持的日期函数包括:

CURDATE / CURRENT_DATECURTIME / CURRENT_TIMENOWSYSDATE
UNIX_TIMESTAMPFROM_UNIXTIMEMONTHMONTHNAME
DAYNAMEDAYOFWEEKWEEKDAYOFYEAR
DAYOFMONTHYEARTIME_TO_SECTO_DAYS
SEC_TO_TIMEDATE_ADD / ADDDATEDATE_SUB / SUBDATEADDTIME
SUBTIMEDATEDIFFDATE_FORMATYEARWEEK
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 |
+---------------------+

字符串函数​

支持的字符串函数包括:

LENGTHCONCATINSERTLOWER
UPPERLEFTRIGHTTRIM
REPLACESUBSTRINGREVERSEFIND_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 |
+------+-------+-------+

数值函数​

支持的数值函数包括:

ABSSQRTMODCEIL / CEILING
FLOORRANDROUNDSIGN
POW / POWERSINASINCOS
ACOSTANATANCOT
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 |
+------+------+-------+------+--------------------+