最后于 更新
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