DateTime&Locale
DateTime 型のカラムへ insert した値がずれる、という不具合が起きていた。不具合といっても非常に内輪でしか発生していなくて、ローカルマシンでも再現しない、ある特定のマシンでしか起こらない現象だった。
具体的には。 18日 00:00:00 と設定したはずなのに、なぜか実際の値は 17日 08:00:00 となっている。
しばらく原因が分からなくて謎だった。ただしずれ幅はいつも一定なもよう。
で。何が違ったかというとロケールだった。
問題のマシンでは英語版 Windows が動いていたのだけど、ロケールまで U.S. になっていた。 Pacific Time (-0800) 。でもその他のマシンはもちろん Japan standard time で +0900 。その差だった。
実際ロケールを変更したら直った。
ただ、まだ気に障るのが、他にも同じデータベース、違うテーブルに DateTime 型のカラムはあるのに、この現象が起こらないところもあったこと。何が違うのだろう。