且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何从Oracle SQL Developer中的DateTime字段中提取时间?

更新时间:2023-01-21 12:41:28

假设你的目标是生成一个代表时间的字符串(这是什么查询您发布的回报,尽管无关紧要的 to_number 调用)

  SELECT to_char << column_name>>'HH24:MI:SS')
FROM table_name

如果要返回不同的数据类型,您需要告诉我们您要返回的数据类型。例如,如果您真的要返回一个 INTERVAL DAY TO SECOND

  SELECT numtodsinterval(< column name>>  -  trunc(< column name>>),'day')
FROM table_name
/ pre>

I tried To_Timestamp and other methods for SQL Developer but only this one worked fine for me.

Select To_Number(To_Char(DateTime_FieldName, 'HH24'))
    || ':' || to_number(to_char(DateTime_FieldName, 'MI'))
    || ':' ||to_number(to_char(DateTime_FieldName, 'SS'))
from TABLE_NAME

Is there a better solution to this?

Assuming your goal is to generate a string representing the time (which is what the query you posted returns despite the extraneous to_number calls)

SELECT to_char( <<column_name>>, 'HH24:MI:SS' )
  FROM table_name

If you want to return a different data type, you'd need to tell us what data type you want to return. If, for example, you really want to return an INTERVAL DAY TO SECOND

SELECT numtodsinterval( <<column name>> - trunc(<<column name>>), 'day' )
  FROM table_name