类别:

上下文函数 (通用)

CURRENT_TIMESTAMP

返回采用本地时区的系统当前时间戳。

别名:

LOCALTIMESTAMPGETDATESYSTIMESTAMP

语法

CURRENT_TIMESTAMP( [ <fract_sec_precision> ] )

CURRENT_TIMESTAMP
Copy

实参

fract_sec_precision

此可选实参表示报告时间的精度。例如,值为 3 表示在小数点后使用 3 位数(即指定时间精度为毫秒)。

默认精度为 9(纳秒)。

有效值介于 0-9 之间。但是,大多数平台不支持真正的纳秒精度;您获得的精度可能低于您指定的精度。实际上,精度通常最多约为毫秒(3 位数)。

备注

仅当会话的 TIMESTAMP_OUTPUT_FORMAT 参数中明确设置了小数秒(例如 'YYYY-MM-DD HH24:MI:SS.FF'),才会显示小数秒。

返回

返回当前系统时间。返回值的数据类型是 TIMESTAMP_LTZ

使用说明

  • TIMEZONE 参数的设置会影响返回值。返回的时间戳为会话的时区。

  • TIMESTAMP_TYPE_MAPPING 参数的设置会影响返回值。返回的时间戳为会话的时间戳类型。

  • 不要使用返回值来确定并发查询(由同一个虚拟仓库处理)之间的精确时间排序,因为查询可能由(仓库中)不同的计算资源提供服务。

  • 为符合 ANSI 标准,可以在不带括号的情况下调用此函数。

  • 别名 SYSTIMESTAMP 和 GETDATE与 CURRENT_TIMESTAMP 在以下方面有所不同:

    • 它们并不支持 fract_sec_precision 实参。

    • 调用这些函数时必须带括号。

示例

将时间输出格式设置为 YYYY-MM-DD HH24:MI:SS.FF

ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF';
Copy

返回当前时间戳,小数秒精度设为 2:

SELECT CURRENT_TIMESTAMP(2);
Copy
+------------------------+
| CURRENT_TIMESTAMP(2)   |
|------------------------|
| 2024-04-17 15:41:38.29 |
+------------------------+

返回当前时间戳,小数秒精度设为 4:

SELECT CURRENT_TIMESTAMP(4);
Copy
+--------------------------+
| CURRENT_TIMESTAMP(4)     |
|--------------------------|
| 2024-04-17 15:42:14.2100 |
+--------------------------+

返回当前时间戳,小数秒精度设为默认值 (9):

SELECT CURRENT_TIMESTAMP;
Copy
+-------------------------------+
| CURRENT_TIMESTAMP             |
|-------------------------------|
| 2024-04-17 15:42:55.130000000 |
+-------------------------------+
语言: 中文