目前我正在使用 MyTimeStampField-TRUNC(MyTimeStampField)
从Oracle中的时间戳列中提取时间部分。
SELECT CURRENT_TIMESTAMP-TRUNC(CURRENT_TIMESTAMP) FROM DUAL
这回来了
+00 13:12:07.100729
这对我来说很合适,从时间戳字段中提取时间部分,但我想知道是否有更好的方法(可能使用ORACLE的内置函数)来执行此操作?
目前我正在使用 MyTimeStampField-TRUNC(MyTimeStampField)
从Oracle中的时间戳列中提取时间部分。
SELECT CURRENT_TIMESTAMP-TRUNC(CURRENT_TIMESTAMP) FROM DUAL
这回来了
+00 13:12:07.100729
这对我来说很合适,从时间戳字段中提取时间部分,但我想知道是否有更好的方法(可能使用ORACLE的内置函数)来执行此操作?
关于什么 提取() 功能?
关于什么 提取() 功能?
你总是可以这样做:
select TO_DATE(TO_CHAR(SYSDATE,'hh24:mi:ss'),'hh24:mi:ss') from dual
我相信这也适用于时间戳。
从双重选择TO_DATE(TO_CHAR(SYSDATE,'hh24:mi:ss'),'hh24:mi:ss')。这使得时间戳比实际时间少1小时。
这可能有所帮助:
Select EXTRACT(HOUR FROM (SYSDATE - trunc(sysdate)) DAY TO SECOND ) From dual;
你想要日期然后使用
to_char(cast(SYSDATE as date),'DD-MM-YYYY')
如果你想要时间,那么使用
to_char(cast(SYSDATE as date),'hh24:mi:ss')
参数正在进行所有更改
'DD-MM-YYYY'
和
'hh24:mi:ss'
我认为所讨论的方法比两个答案都更短,更快。因为它只涉及两个数学运算,没有复杂的解析,格式化和转换。
select hour(CURRENT_TIMESTAMP)