- 类别:
:doc:`/sql-reference/functions-context`(通用)
CURRENT_TIMESTAMP¶
返回采用本地时区的系统当前时间戳。
语法¶
CURRENT_TIMESTAMP( [ <fract_sec_precision> ] )
CURRENT_TIMESTAMP
实参¶
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 标准,可以在 SQL 语句中调用此函数,而不必带括号。
然而,如果您正在将一个 Snowflake Scripting 变量 设置为调用函数的表达式(例如,
my_var := CURRENT_TIMESTAMP();
),则必须包含括号。有关更多信息,请参阅 上下文函数的用法说明。别名 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';
返回当前时间戳,小数秒精度设为 2:
SELECT CURRENT_TIMESTAMP(2);
+------------------------+
| CURRENT_TIMESTAMP(2) |
|------------------------|
| 2024-04-17 15:41:38.29 |
+------------------------+
返回当前时间戳,小数秒精度设为 4:
SELECT CURRENT_TIMESTAMP(4);
+--------------------------+
| CURRENT_TIMESTAMP(4) |
|--------------------------|
| 2024-04-17 15:42:14.2100 |
+--------------------------+
返回当前时间戳,小数秒精度设为默认值 (9):
SELECT CURRENT_TIMESTAMP;
+-------------------------------+
| CURRENT_TIMESTAMP |
|-------------------------------|
| 2024-04-17 15:42:55.130000000 |
+-------------------------------+