0

SQL Serverのこのビューは、管理時間に従って表示するレコードを取得しています。これをOracle 10gで実行する必要があります。ここでは、どのような違いを変換する必要がありますか?

    /* Formatted on 1/29/2013 3:39:19 PM (QP5 v5.227.12220.39724) */
SELECT p.facility_key,
       CAST (p.unit_code AS VARCHAR) + '-' + CAST (p.room AS VARCHAR)
      AS unit_code,
       p.first_name,
       p.last_name,
       m.admin_time,
     CONVERT (varchar (5),
            datediff (s,
                  m.admin_time,
                  getdate ())
          / 3600)
       + ':'
       + CONVERT (varchar (5),
          datediff (s,
                m.admin_time,
                getdate ())% 3600 / 60)
              AS ELAPSED
FROM         OTEN.TEN_M_PATIENT_MAST AS P INNER JOIN
              OP.ORD_M_ADMIN AS M ON P.PAT_NUMBER = M.PAT_NUMBER
WHERE     (M.ADMIN_TIME BETWEEN DATEADD(DAY, - 1, GETDATE()) AND GETDATE())
4

2 に答える 2

2

経過時間が24時間未満の場合は、次のように機能するはずです。

SELECT P.FACILITY_KEY,
       CAST(P.UNIT_CODE AS VARCHAR(255)) || '-' || CAST(P.ROOM AS VARCHAR(255)) AS UNIT_CODE,
       P.FIRST_NAME, P.LAST_NAME, M.ADMIN_TIME,
       to_char(trunc(sysdate)+(SYSDATE - m.admin_time), 'hh:mm:ss') as elapsed
FROM OTEN.TEN_M_PATIENT_MAST P INNER JOIN
     OP.ORD_M_ADMIN M
     ON P.PAT_NUMBER = M.PAT_NUMBER
WHERE M.ADMIN_TIME BETWEEN sysdate - 1 and sysdate

いくつかのメモ。まず、に長さを追加しましたvarchar。これは、どのデータベースでも実行する必要があります。次に、減算を使用するように日時演算を簡略化しました。に変更getdate()しましたsysdate。そして、「+」と「||」。最後に、経過時間をhh:mm:ss形式で取得するために、トリックを使用しました。差を取り、現在の日付に追加し、小数部分をhh:mm:ssに変換します。

于 2013-01-29T22:12:57.807 に答える
1

これを試して:

 /* Formatted on 1/29/2013 4:00:43 PM (QP5 v5.227.12220.39724) */
SELECT p.facility_key,
       CAST (p.unit_code AS VARCHAR) || '-' || CAST (p.room AS VARCHAR)
      AS unit_code,
       p.first_name,
       p.last_name,
       m.admin_time,
     TO_CHAR (  (SYSDATE- m.admin_time)
          / 3600)
       || ':'
       || TO_CHAR ((SYSDATE- m.admin_time) MOD 3600 / 60)
              AS elapsed
FROM         oten.ten_m_patient_mast  p INNER JOIN
              op.ord_m_admin m ON p.pat_number = m.pat_number
WHERE     (m.admin_time BETWEEN (SYSDATE -1) AND SYSDATE)
于 2013-01-29T22:21:23.877 に答える