【问题标题】:12 Hours format in oracleoracle中的12小时制
【发布时间】:2015-04-27 08:38:28
【问题描述】:

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

我使用 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;

【问题讨论】:

标签: sql oracle oracle-sqldeveloper


【解决方案1】:

使用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;

【讨论】:

    【解决方案2】:

    您可以通过使用 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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 2019-05-22
      • 1970-01-01
      • 2018-04-13
      • 2013-02-05
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多