类别:

上下文函数 (通用)

SYSDATE

返回系统的当前时间戳,以 UTC 时区为准。

另请参阅:

CURRENT_TIMESTAMP

语法

SYSDATE()
Copy

实参

无。

返回

返回当前时间戳,以 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();
Copy
+--------------------------+--------------------------+
| SYSDATE()                | CURRENT_TIMESTAMP()      |
|--------------------------+--------------------------|
| 2024-04-17 22:47:54.3520 | 2024-04-17 15:47:54.3520 |
+--------------------------+--------------------------+
语言: 中文