時刻の算術計算
時刻は、減算、増分、または減分を行うことができます。
時刻の減算: ある時刻 (TIME2) を別の時刻 (TIME1) から引いた結果は、この 2 つの時刻間の時間数、分数、および秒数を指定する時刻期間となります。 結果のデータ・タイプは DECIMAL(6,0) です。 TIME1 が TIME2 より大きいか等しい場合は、TIME1 から TIME2 を引きます。 ただし、TIME1 が TIME2 より小さい場合には、TIME2 から TIME1 を引いて、結果の符号を負にします。 RESULT = TIME1 - TIME2 の演算のために行われる手順を、次に解説します。
時刻の減算: result = time1 - time2
|
例えば、TIME('11:02:26') - '00:32:56' の結果は、「102930」(10 時間 29 分 30 秒の期間) です。 この例で、
第 2 オペランドは時刻に変換する必要がないことに注意してください。 SQLのDatetime演算で説明されている減算の規則の1つによると、第1オペランドが時間の場合、第2オペランドは時間の文字列表現とすることができます。
時刻の増減: 時刻に期間を足した結果、 あるいは時刻から期間を引いた結果は、 それ自体が時刻となります。 時間数のオーバーフローやアンダーフローは捨てられ、これにより常に結果が時刻となります。 時間数で指定する期間を加算または減算する場合、影響を受けるのは時間数の部分だけです。 「00:00:00」という時刻に 24 時間を足した結果は、「24:00:00」という時刻になります。 ただし、その他の時刻の場合は、24 時間を足すと同じ時刻になります。例えば、「00:00:59」という時刻に 24 時間を足した結果の時刻は、「00:00:59」です。 分数と秒数は変更されません。
同様に、分数で指定する期間を加算または減算する場合、影響を受けるのは分の部分だけです。 ただし、必要に応じて時間数の部分にも影響が及びます。 時刻の秒の部分は変更されません。
秒の期間を足したり引いたりすると、時刻の秒の部分が影響を 受ける他に、分および時も影響を受ける可能性があります。
TIME1 + X (X は正の DECIMAL(6,0)) は、次の式と等価です。 TIME1 + HOUR(X) HOURS + MINUTE(X) MINUTES + SECOND(X) SECONDS