跳到主要内容
最后 更新

NANOSECOND

描述

提取 DATEDATETIMETIMESTAMP_NS 值中的纳秒部分。输入为 DATE 时始终返回 0;输入为 DATETIME(p) 时,在小数秒末尾补零到 9 位后返回;输入为 TIMESTAMP_NS 时返回完整的 9 位小数秒。

语法

NANOSECOND(<date>)
NANOSECOND(<datetime>)
NANOSECOND(<timestamp_ns>)

参数

参数说明
<date>DATE 类型的值。
<datetime>DATETIME(p) 类型的值,其中 p 的取值范围为 0 到 6。
<timestamp_ns>TIMESTAMP_NS 类型的值。

返回值

返回 [0, 999999999] 范围内的 INT。输入为 DATE 时返回 0;输入为 DATETIME(p) 时,返回其小数秒换算成纳秒并在末尾补零到 9 位后的值;输入为 TIMESTAMP_NS 时返回完整的 9 位小数秒。输入为 NULL 时返回 NULL

举例

SELECT NANOSECOND(CAST('2024-02-29' AS DATE)) AS ns;
+----+
| ns |
+----+
| 0 |
+----+
SELECT NANOSECOND(CAST('2024-02-29 12:34:56.123456' AS DATETIME(6))) AS ns;
+-----------+
| ns |
+-----------+
| 123456000 |
+-----------+
SELECT NANOSECOND(CAST('2024-02-29 12:34:56.123456789' AS TIMESTAMP_NS)) AS ns;
+-----------+
| ns |
+-----------+
| 123456789 |
+-----------+
SELECT NANOSECOND(CAST(NULL AS TIMESTAMP_NS)) AS ns;
+------+
| ns |
+------+
| NULL |
+------+