として:
The Unix time number is zero at the Unix epoch, and increases by exactly 86400
per day since the epoch. So it cannot represent leap seconds. The OS will slow
down the clock to accomodate for this.
では、Unix エポック (ts など) を DB (ミリ秒精度) に格納している場合、次のケースをどのように処理すればよいでしょうか?
- ts が常に増加し、逆方向にならないことを確認するにはどうすればよいですか?
- うるう秒を考慮して db から 100 秒間隔を正確に選択するにはどうすればよいですか?
例えば
SELECT * FROM events WHERE ts >= T1 and ts < T1 + 100
上記の SQL は、T1、T1+1、T1+2、..T1+99 までに発生したイベントを返しますが、うるう秒のために、1 秒のうるう時間を含めると結果が間違っている可能性があるため、取得方法これを考慮しますか?