0

Oracle には、HH24:MI:SS という形式の 2 つの時間文字列があります。これら 2 つを加算して、結果を 10 進数で取得したいと考えています (Oracle である日時を別の日時から減算した後に得られるものと同じように)。何か助けはありますか?

4

3 に答える 3

2

これを試して

SELECT
      ( TO_DATE ( '13:00:00',
                'HH24:MI:SS' )
       - TO_DATE ( '12:00:00',
                'HH24:MI:SS' ) )
          AS DECIMALS,
      ( TO_DATE ( '13:00:00',
                'HH24:MI:SS' )
       - TO_DATE ( '12:00:00',
                'HH24:MI:SS' ) )
      * 24
          AS HOURS,
        ( TO_DATE ( '13:00:00',
                 'HH24:MI:SS' )
        - TO_DATE ( '12:00:00',
                  'HH24:MI:SS' ) )
      * 24
      * 60
          AS MINUTES,
        ( TO_DATE ( '13:00:00',
                 'HH24:MI:SS' )
        - TO_DATE ( '12:00:00',
                  'HH24:MI:SS' ) )
      * 24
      * 60
      * 60
          AS SECONDS
FROM
      DUAL;

答え:

DECIMALS            HOURS   MINUTES SECONDS
0.0416666666666667  1       60      3600
于 2013-10-31T13:42:02.873 に答える
0
SELECT  ROUND
        (
            ( ( TO_DATE(t1, 'HH24:MI:SS') - TO_DATE(t2, 'HH24:MI:SS') ) * 24 ) / 60 * 60
        ,   2
        ) AS t_minus
FROM
(
        SELECT  '22:10:00' AS t1
        ,       '21:05:00' AS t2
        FROM    DUAL
);
于 2013-10-31T15:20:25.900 に答える