1

我正在使用 JAVA 中的 JDBC 连接对 MySQL 数据库执行以下两个查询。

1:

SELECT count(*) 
FROM transaction 
WHERE 
    (entry_time between STR_TO_DATE('2012-09-24 00:00:00','%Y-%m-%d %k:%i:%s') 
    AND STR_TO_DATE('2012-09-24 23:59:59','%Y-%m-%d %k:%i:%s'))

2:

SELECT * 
FROM transaction 
WHERE 
    (entry_time between STR_TO_DATE('2012-09-24 00:00:00','%Y-%m-%d %k:%i:%s') 
    AND STR_TO_DATE('2012-09-24 23:59:59','%Y-%m-%d %k:%i:%s'))

当我不断搜索时,我每次都会得到不同的记录。例如

  1. 68
  2. 72
  3. 58
  4. 69

我在日志文件中打印了输出,发现对于第一个查询,它带来了数据库中实际的值。当执行第二个查询并且有一些过程正在进行时,它会给出不同的值。为什么会这样?

我的第二个问题是第二个查询,我也得到了 '2012-09-23' 的值。但根据指定的范围,它不应该带它。

我正在使用 MySQL 5.1 和 JAVA 1.6.0_14。这是一个 Web 应用程序,现在位于生产服务器上。我无法调试的地方。:( 问题仅在生产服务器上发生,测试设置工作正常。感谢任何帮助。

4

0 回答 0