1日の終わりは23:59:59ぴったりではない!

時刻tが○月×日内であることを判定する条件文に「○月×日0:00:00 ≦ 時刻t ≦ ○月×日23:59:59」と書く阿呆が一定数いる。このロジックは○月×日23:59:59.001を「翌日」と判定するので、秒未満を扱う処理系において1/86400の確率で誤動作する。絶対に書いてはいけない。正しくは「○月×日0:00:00 ≦ 時刻t < 翌日0:00:00」である。

秒単位で時刻を取り扱う処理系においても、移植性を考慮し、正しいロジックで実装を行うべきである。たとえばMySQLの日付型は秒単位だが、Microsoft SQL Serverの日付型はミリ秒単位である。したがって、MySQLで(ロジックは間違っているが正しく)動作するコードは、SQL Serverに移植すると動かなくなる。