oracle中的12小时格式

时间:2015-04-27 08:38:29

标签: sql oracle oracle-sqldeveloper

我有一个功能,可以在一列中接收用户名和返回时间,超时和用户名。

我使用substring将其分成3列,超时返回为24小时格式,我需要12小时格式。

select substr( FUN1('username'),1,5) TIMEIN , 
       substr( FUN1('username'),7,6) TIMEOUT,
       substr( FUN1('username'),12,100) NAME from dual;

2 个答案:

答案 0 :(得分:0)

使用TO_CHAR功能

SELECT TO_CHAR(substr( FUN1('username'),1,5), 'DD-MM-YYYY HH:MI:SS AM') TIMEIN, 
       TO_CHAR(substr( FUN1('username'),7,6), 'DD-MM-YYYY HH:MI:SS AM') TIMEOUT,
       substr( FUN1('username'),12,100) NAME 
FROM dual;

答案 1 :(得分:0)

您可以使用TO_DATE将TIMEOUT转换为日期,假设时间为24小时格式,然后使用TO_CHAR将其重新转换为字符串,格式为12小时格式 -

select to_char(to_date('13:00', 'HH24:MI'),'HH:MI AM') from dual;

以下是问题中的SQL在TIMEOUT中的样子 -

select substr( FUN1('username'),1,5) TIMEIN , 
   to_char(to_date(substr( FUN1('username'),7,6), 'HH24:MI'),'HH:MI AM') TIMEOUT,
   substr( FUN1('username'),12,100) NAME from dual;