我做了什么:
SELECT TO_CHAR(SYSDATE, 'HH24:MI') FROM dual;
我得到了什么:
13:30
我想要的是什么:
13.50
我还尝试了EXTRACT功能,然后将小时和分钟相加,但仍无效。
答案 0 :(得分:5)
如果您想要实际时间(不仅仅是小时和分钟),您可以:
select ( sysdate - trunc(sysdate) ) * 24, sysdate
from dual;
如果您只想要几小时和几分钟:
select extract(hour from current_timestamp) + extract(minute from current_timestamp) / 60
from dual
答案 1 :(得分:1)
如果您希望以小时为单位表示时间(小时,分钟和秒),则可以使用
( sysdate - trunc(sysdate) ) * 24
正如戈登已经表明的那样。
如果要截断秒数并将小时和分钟转换为小时,则可以使用
( trunc(sysdate, 'mm') - trunc(sysdate) ) * 24
答案 2 :(得分:1)
我们可以使用extract()
功能来获取小时和分钟。请注意,这需要将日期转换为时间戳数据类型(或在示例中使用systimestamp)。
一旦你有了小时和分钟,就可以对它们进行算术运算并根据自己的需要进行格式化。例如:
with cte as (
select to_timestamp('2018-03-31 13:30:00', 'yyyy-mm-dd hh24:mi:ss') as dt
from dual
) , tt as (
select extract(hour from dt) as hr
, round(extract(minute from dt)/60,2) as mn
from cte
)
select to_char(hr,'09')||trim(to_char(mn,'.00')) as your_time
from tt
/
...将显示13.50
。