HOME       LIST

SQL - 日付間の差を年月日で表現

日付間の差を年月日で表現

自分自身を信じてみるだけでいい。きっと、生きる道が見えてくる。(Johann Wolfgang von Goethe)

Let's take a breather.(休憩しよう/一休みしよう)


年月日

DECLARE
        d1	DATE;
        d2	DATE;
        years	NUMBER;
        months  NUMBER;
        days    NUMBER;
BEGIN
        d1 := to_date( '09-JUL-2007', 'DD-MON-YYYY' );
        d2 := to_date( '24-JUL-1995', 'DD-MON-YYYY' );

        years := trunc( months_between( d1, d2 ) / 12 );
        months := mod( trunc( months_between( d1, d2 ) ), 12 );
        days := d1 - add_months(d2,trunc( months_between( d1, d2 ) ));

        dbms_output.put_line( 'years = ' || years);
        dbms_output.put_line( 'months = ' || months);
        dbms_output.put_line( 'days = ' || days);
END;

年月日時分秒

DECLARE
        d1	DATE;
        d2	DATE;
        years	NUMBER;
        months  NUMBER;
        days    NUMBER;
        hours	NUMBER;
        minutes NUMBER;
        seconds	NUMBER;
        
BEGIN
        d1 := to_date( '09-JUL-2007 23:10:43', 'DD-MON-YYYY HH24:MI:SS' );
        d2 := to_date( '24-JUL-1995 10:09:40', 'DD-MON-YYYY HH24:MI:SS' );

        years := trunc( months_between( d1, d2 ) / 12 );
        months := mod( trunc( months_between( d1, d2 ) ), 12 );
        days := trunc(d1 - add_months(d2,trunc( months_between( d1, d2 ) )));
        hours := trunc( mod( (d1-d2)*24, 24 ) );
        minutes := trunc( mod( (d1-d2)*24*60, 60 ) );
        seconds := trunc( mod( (d1-d2)*24*60*60, 60 ) );

        dbms_output.put_line( 'years = ' || years);
        dbms_output.put_line( 'months = ' || months);
        dbms_output.put_line( 'days = ' || days);
        dbms_output.put_line( 'hours = ' || hours);
        dbms_output.put_line( 'minutes = ' || minutes);
        dbms_output.put_line( 'seconds = ' || seconds);
        
END;

以前コンテンツ:SQL - MDB - 他のテーブルを基にテーブルを更新する



Copyright(c) 2007-2019 dojeun.com All Rights Reserved.

Valid XHTML 1.0 Transitional