mysql不同的服务器,相同的内容,不同的计数

mysql不同的服务器,相同的内容,不同的计数,mysql,Mysql,我有两台服务器,live和beta,live和beta之间有两个相同的数据库,但计数返回的数字不同 现场: 测试版ubuntu,mysql: mysql> SELECT COUNT(*) FROM `tbl_application_user` WHERE created >= '2014-06-01 00:00:01' and created < '2014-07-01 23:59:59'; +----------+ | COUNT(*) | +----------+ |

我有两台服务器,live和beta,live和beta之间有两个相同的数据库,但计数返回的数字不同

现场:

测试版ubuntu,mysql:

mysql> SELECT COUNT(*) FROM `tbl_application_user` WHERE created >= '2014-06-01 00:00:01' and created < '2014-07-01 23:59:59';
+----------+
| COUNT(*) |
+----------+
|     3444 |
+----------+
1 row in set (0.00 sec)
当我在笔记本电脑Windows 8.1 mysql上尝试本地mysql时,它返回的数字与live相同

mysql> SELECT COUNT(*) FROM `tbl_application_user` WHERE created >= '2014-06-01
00:00:01' and created < '2014-07-01 23:59:59';
+----------+
| COUNT(*) |
+----------+
|     3432 |
+----------+
1 row in set (0.03 sec)
mysql>
是什么导致BETA服务器返回不同的数字


谢谢,

也许创建的字段在twoo数据库中有所不同


如果您正在为创建的字段和复制使用触发器,则此问题通常是由于复制中的时间延迟造成的

测试服务器上的时区可能与其他计算机不同。虽然时间和日期存储为UTC,但按字面意思使用时,它们将在连接的时区中进行解释,如查询的WHERE部分

供参考:

MySQL将时间戳值从当前时区转换为UTC,以便 存储,并从UTC返回到当前时区进行检索。 对于其他类型(如DATETIME),不会发生这种情况。默认情况下, 每个连接的当前时区是服务器的时间。这个 时区可以根据每个连接进行设置。只要时间 分区设置保持不变,则返回与存储相同的值。 如果存储时间戳值,然后更改时区和 检索值,检索到的值与值不同 你储存了。发生这种情况是因为同一时区未用于 双向转换。当前时区可用作 时区系统变量的值。有关详细信息,请参阅 第10.6节,“MySQL服务器时区支持”


您确定这两个数据库完全相同吗?您确定所有数据库中都有相同的数据吗?非常确定,tbl_应用程序_用户的所有记录选择计数*总数都相同,只是使用日期范围选择计数不同。如果您尝试使用<'2014-06-01 00:00:01'选择所有数据,并创建>='2014-07-01 23:59:59'是否得到相同的差异?因此,我认为所有记录的计数是相同的。但2条记录的创建日期已更改。当您说总数相同时,你是如何计算总数的?我使用mysqldump从live导出,并使用mysql-uroot-pdbmysql> SELECT COUNT(*) FROM `tbl_application_user` WHERE created >= '2014-06-01 00:00:01' and created < '2014-07-01 23:59:59'; +----------+ | COUNT(*) | +----------+ | 3432 | +----------+ 1 row in set (0.03 sec) mysql>