我有一个功能,可以在一列中接收用户名和返回时间,超时和用户名。
我使用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;
答案 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;