从ORACLE中的TimeStamp列提取时间部分

hmae6n7t  于 2023-04-29  发布在  Oracle
关注(0)|答案(7)|浏览(223)

目前我使用MyTimeStampField-TRUNC(MyTimeStampField)从Oracle中的timestamp列中提取时间部分。

SELECT CURRENT_TIMESTAMP-TRUNC(CURRENT_TIMESTAMP) FROM DUAL

这个返回
+00 13:12:07。100729
从时间戳字段中提取时间部分对我来说还可以,但我想知道是否有更好的方法(可能是使用ORACLE的内置函数)来做到这一点?

pinkon5k

pinkon5k2#

你总是可以这样做:

select TO_DATE(TO_CHAR(SYSDATE,'hh24:mi:ss'),'hh24:mi:ss') from dual

我相信这也会对时间戳起作用。

yxyvkwin

yxyvkwin3#

你只想约会然后使用

to_char(cast(SYSDATE as date),'DD-MM-YYYY')

如果你只想要时间

to_char(cast(SYSDATE as date),'hh24:mi:ss')

参数使所有的改变

'DD-MM-YYYY'

'hh24:mi:ss'
jc3wubiy

jc3wubiy4#

这可能有助于:

Select EXTRACT(HOUR FROM (SYSDATE - trunc(sysdate)) DAY TO SECOND ) From dual;
e1xvtsh3

e1xvtsh35#

select TO_DATE(TO_CHAR(SYSDATE,'hh24:mi:ss'),'hh24:mi:ss') from dual

这给出的时间戳比实际时间短1小时。

gkl3eglg

gkl3eglg6#

也许不是那么优雅,但它对我很有效。

SELECT TRUNC(CURRENT_TIMESTAMP) + (CURRENT_TIMESTAMP - TRUNC(CURRENT_TIMESTAMP)) - TRUNC(CURRENT_TIMESTAMP) FROM dual
-----------------
0,851863425925926

不需要最后一个减法,你可以将TIMESTAMP转换为DATE,随时间i。e.

SELECT TRUNC(CURRENT_TIMESTAMP) + (CURRENT_TIMESTAMP - TRUNC(CURRENT_TIMESTAMP)) FROM dual
-----------------
20.04.2023 20:31:02
zvms9eto

zvms9eto7#

select hour(CURRENT_TIMESTAMP)

相关问题