1

タイムスタンプと日付のフィールドがあるほとんどのクエリで奇妙な問題が発生しています。タイムゾーンを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、およびラップトップ上のすべてのサーバーを持っています。

アプリが完全に壊れてしまう可能性があり、不必要なやり直しをしたくないので、変更を元に戻すのが怖いです。

4

1 に答える 1

0

ああ、私の悪い、私は将来の日付(2013-12-01 'と'2012-12-16)を検索しています、jquery datepickerの私の悪い、-365を実行する代わりにデフォルトの日付+365を追加しました。問題は解決されました。私は本当になぜ愚かな間違いをし続け、それを修正するために何時間も無駄にするのかわからない。

于 2012-12-15T20:18:45.887 に答える