Oracle数据库如何获取current_time?求MySQL对应功能的等价写法
Equivalent of MySQL's
CURRENT_TIME in Oracle 嘿,刚好对这个问题熟得很!MySQL里的CURRENT_TIME用来获取当前的时分秒,在Oracle里有几种等价的写法,看你需要哪种效果:
先回顾下你给出的MySQL示例:
SELECT current_time; -- 输出: -- current_time -- -------------------- -- 15:30:16
1. 得到和MySQL完全一致的字符串格式(时分秒)
如果你想要和示例里一模一样的字符串输出,用TO_CHAR函数搭配SYSDATE(Oracle获取当前系统时间的核心函数):
SELECT TO_CHAR(SYSDATE, 'HH24:MI:SS') AS current_time FROM DUAL;
执行后输出会是:
CURRENT_TIME -------------------- 15:30:16
这里HH24确保是24小时制,MI代表分钟,SS代表秒,完美匹配MySQL的输出格式。
2. 得到时间类型的值(而非字符串)
Oracle其实也有CURRENT_TIME函数,但它默认返回带时区的TIME WITH TIME ZONE类型,结果会带时区偏移,比如15:30:16.000000 +08:00。如果只需要纯时间类型,可以用CAST转换:
-- 带时区的时间结果 SELECT CURRENT_TIME FROM DUAL; -- 去掉时区的纯时间 SELECT CAST(CURRENT_TIME AS TIME) AS current_time FROM DUAL;
不过这个方法会保留小数秒,如果不需要的话,第一种字符串格式的写法更贴合你的需求。
内容的提问来源于stack exchange,提问作者eastwater
相关产品推荐
相关产品推荐

