- 类别:
上下文函数 (通用)
SYSDATE¶
返回系统的当前时间戳,以 UTC 时区为准。
- 另请参阅:
语法¶
SYSDATE()
实参¶
无。
返回¶
返回当前时间戳,以 UTC 时区为准。
返回值的数据类型是 TIMESTAMP_NTZ。
使用说明¶
尽管名称如此,但此函数返回 TIMESTAMP_NTZ,而不是 DATE。要控制输出格式,请使用会话参数 TIMESTAMP_NTZ_OUTPUT_FORMAT。
此函数类似于 CURRENT_TIMESTAMP,不同之处是:
它以 UTC 时区返回当前时间戳,而 CURRENT_TIMESTAMP 以当地时区返回时间戳。
它的返回值是 TIMESTAMP_NTZ,而 CURRENT_TIMESTAMP 返回 TIMESTAMP_LTZ。
它需要括号 (
SYSDATE()
),而 CURRENT_TIMESTAMP 无需括号即可被调用。它不支持用于指定小数秒数精度的参数。
不要使用返回值来确定并发查询(由同一个虚拟仓库处理)之间的精确时间排序,因为查询可能由(仓库中)不同的计算资源提供服务。
示例¶
将时间输出格式设置为 YYYY-MM-DD HH24:MI:SS.FF4
,然后返回 SYSDATE 和 CURRENT_TIMESTAMP。请注意因时区差异而导致的小时字段的差异。
ALTER SESSION SET TIMESTAMP_NTZ_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF4';
ALTER SESSION SET TIMESTAMP_LTZ_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF4';
ALTER SESSION SET TIMEZONE = 'America/Los_Angeles';
SELECT SYSDATE(), CURRENT_TIMESTAMP();
+--------------------------+--------------------------+
| SYSDATE() | CURRENT_TIMESTAMP() |
|--------------------------+--------------------------|
| 2024-04-17 22:47:54.3520 | 2024-04-17 15:47:54.3520 |
+--------------------------+--------------------------+