跳到主要内容
最后 更新

NOW

描述

NOW 函数返回当前系统日期时间,支持通过可选参数指定 0 到 9 的小数秒精度。

该函数与 mysql 的 now 函数 行为一致。

别名

  • current_timestamp()

语法

NOW([`<precision>`])

参数

参数说明
<precision>[0, 9] 范围内的可选整数常量,默认为 0。0 到 6 返回对应精度的 DATETIME(p);7 到 9 返回 TIMESTAMP_NS。实际时钟分辨率取决于操作系统和 JDK,不可用的低位以零填充。

返回值

返回当前系统时间。<precision> 为 0 到 6 时,返回类型为 DATETIME(<precision>);为 7 到 9 时,返回类型为 TIMESTAMP_NS,并显示 9 位小数。同一条语句中的返回值保持一致。

  • 如果 <precision> 为负数或大于 9,函数会返回错误。

举例

---获取当前时间
select NOW(), NOW(3), NOW(6), NOW(9);
+---------------------+-------------------------+----------------------------+-------------------------------+
| now() | now(3) | now(6) | now(9) |
+---------------------+-------------------------+----------------------------+-------------------------------+
| 2025-01-23 11:08:35 | 2025-01-23 11:08:35.561 | 2025-01-23 11:08:35.561000 | 2025-01-23 11:08:35.561000000 |
+---------------------+-------------------------+----------------------------+-------------------------------+

--- 无效精度(超出范围,报错)
SELECT NOW(10) AS result;
ERROR 1105 (HY000): errCode = 2, detailMessage = Precision of NOW must be between 0 and 9. Precision was set to: 10

select NOW(-1);
ERROR 1105 (HY000): errCode = 2, detailMessage = Precision of NOW must be between 0 and 9. Precision was set to: -1