对于我有时间戳和日期字段的大多数查询,我遇到了一些奇怪的问题,在我将时区从 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 查询。所有标记为 Yes 的字段是枚举列。
此外,我的 SimpleDataParser 类在 2 周前工作正常,现在因无法解析的日期异常而失败。我修复了这个,但我的上述功能仍然被破坏。
有人可以建议我在我对笔记本电脑所做的更改之间有什么关系吗(我将笔记本电脑的时区从 PST 更改为 IST)。我的笔记本电脑上有 mysql 和 jdk 以及所有服务器。
现在我很害怕撤销更改,因为它可能会完全破坏我的应用程序,我真的不想做不必要的返工。