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