DateDiff関数の怪!?
とある作業に対して、開始時刻と終了時刻とを入力し、作業時間を求めるプログラムを作っていて気がついたのですが、理解困難な状態になってます。
作業時間=DateDiff(”h”,[作業開始], [作業終了])
で、何時間かを求めようとした場合です。
例)
作業開始=9:00:00
作業終了=9:15:00 の時
DateDiff("h",~) = 0 ※正しい
作業開始=9:50:00
作業終了=10:05:00 の時
DateDiff("h",~) = 1 ※違うぞ
前者の場合は問題ないとして、後者の場合にDateDiffが1を返すのは納得がいきません。同じ15分間なのに。
試しに、DateDiff("h", TimeSerial(9,59,59), TimeSerial(10,0,0)) を計算させても、1を返してきます。
単に、Hour([終了時刻])-Hour([開始時刻])をしているにすぎない動作です。
SQL Server の DateDiff も同じ動きでした。
DateDiffってそんなものなんでしょうか。
※これで大バクを出してしまいました・・(テスト不足と言われればそれまでですが)