在 Oracle 中获取当前时间可以使用 SYSDATE 或 CURRENT_TIMESTAMP 系统变量,它们分别返回服务器当前时间戳或考虑会话时区的时间戳。此外,可以使用 EXTRACT 函数提取时间戳的特定组件,如小时、分钟、秒。

如何在 Oracle 中获取当前时间
在 Oracle 数据库中,获取当前时间可以使用 SYSDATE 系统变量。它返回服务器当前时间戳。
使用 SYSDATE 获取当前时间戳
SYSDATE 可以直接用在 SQL 查询中,如下所示:
SELECT SYSDATE FROM dual;
结果将是一个时间戳,格式为 YYYY-MM-DD HH:MM:SS.FF。例如:
2023-03-08 14:32:15.123
使用 CURRENT_TIMESTAMP 获取当前时间戳
SYSDATE 和 CURRENT_TIMESTAMP 通常可以互换使用。但 CURRENT_TIMESTAMP 在某些情况下具有优势。
-
时区感知:
CURRENT_TIMESTAMP考虑会话时区,而SYSDATE始终返回服务器时区的时间。 -
更新值:
CURRENT_TIMESTAMP每次查询执行时都会更新其值,而SYSDATE保持不变。
可以使用以下查询获取当前时间戳,并考虑会话时区:
SELECT CURRENT_TIMESTAMP FROM dual;
提取时间组件
如果需要提取时间戳的特定组件,可以使用以下函数:
-
小时:
EXTRACT(HOUR FROM) -
分钟:
EXTRACT(MINUTE FROM) -
秒:
EXTRACT(SECOND FROM)
例如,要获取当前小时:
SELECT EXTRACT(HOUR FROM SYSDATE) FROM dual;










