我对下面的行为感到困惑。为什么第一条SELECT语句返回 1 而第二条语句返回 0?我希望它们都返回 1 因为日期大于或等于文字。
为什么排序规则会影响日期比较?在将日期与文字进行比较时,将日期(或日期时间)表示为字符串是否错误?如果是这样,我应该如何进行日期与文字比较?
mysql> 创建数据库测试;
查询正常,1 行受影响(0.00 秒)
mysql> 使用测试;
mysql> 设置名称 utf8 整理 utf8_general_ci;
查询正常,0 行受影响(0.00 秒)
mysql> 创建表 foo (
酒吧日期不为空
) 引擎=InnoDB 默认字符集=utf8 排序=utf8_unicode_ci;
查询正常,0 行受影响(0.15 秒)
mysql> INSERT INTO foo (bar) VALUES ('2013-01-01');
查询正常,1 行受影响(0.00 秒)
mysql> SELECT COUNT(*) FROM WHERE bar >= '2013-01-01 00:00:00';
+----------+
| 计数(*) |
+----------+
| 1 |
+----------+
一组中的 1 行(0.00 秒)
mysql> 设置名称 utf8 整理 utf8_unicode_ci;
查询正常,0 行受影响(0.00 秒)
mysql> SELECT COUNT(*) FROM WHERE bar >= '2013-01-01 00:00:00';
+----------+
| 计数(*) |
+----------+
| 0 |
+----------+
一组中的 1 行(0.00 秒)