タイムスタンプと日付のフィールドがあるほとんどのクエリで奇妙な問題が発生しています。タイムゾーンをPSTからISTに変更した後、正常に機能していたクエリが機能しなくなりました。
このクエリを考えてみましょう。
select SQL_CALC_FOUND_ROWS * from `mydb`.`mytable` WHERE (Date(timestamp) BETWEEN '2013-12-01' and '2012-12-16') and scpets= 'accessories' and images = 'Yes' and videoflag = 'Yes' and maps = 'Yes' and flag = 1 and title LIKE '%Book%' order by Date(timestamp) desc Limit 0, 100
クエリ条件を満たすレコードが2つあることがわかったら、0レコードを返します。
クエリからbetween句を削除すると、正しいレコードが返されます。クエリは完全に正常に見え、正しい入力がプログラムからSQLクエリに渡されるため、ここで修正を行う場所が失われます。すべてのフィールドに[はい]のマークが付いています。列挙型の列です。
また、2週間前まで正常に機能していたSimpleDataParserクラスが、解析不可能な日付例外で失敗するようになりました。これを修正しましたが、上記の機能は壊れています。
誰かが私にラップトップに行った変更(ラップトップのタイムゾーンをPSTからISTに変更した)との関係を教えてもらえますか?私はmysqlとjdk、およびラップトップ上のすべてのサーバーを持っています。
アプリが完全に壊れてしまう可能性があり、不必要なやり直しをしたくないので、変更を元に戻すのが怖いです。