• 5.6中使用字符串存放时间,导致隐式转换发生的记录


    CREATE TABLE `test_date` (

      `id` int(11) DEFAULT NULL,

      `gmt_create` varchar(100) DEFAULT NULL,

      KEY `ind_gmt_create` (`gmt_create`)

    ) ENGINE=InnoDB AUTO_INCREMENT=524272;

    5.5:

    mysql> explain  select * from test_date where gmt_create BETWEEN DATE_ADD(NOW(), INTERVAL - 1 MINUTE) AND        DATE_ADD(NOW(), INTERVAL 15 MINUTE) ;

    +----+-------------+-----------+-------+----------------+----------------+---------+------+------+-------------+

    | id | select_type | table     | type  | possible_keys  | key            | key_len | ref  | rows | Extra       |

    +----+-------------+-----------+-------+----------------+----------------+---------+------+------+-------------+

    |  1 | SIMPLE      | test_date | range | ind_gmt_create | ind_gmt_create | 303     | NULL |    1 | Using where |

    5.6:

    mysql> explain select * from test_date where gmt_create BETWEEN DATE_ADD(NOW(), INTERVAL - 1 MINUTE) AND        DATE_ADD(NOW(), INTERVAL 15 MINUTE) ; 

    +----+-------------+-----------+------+----------------+------+---------+------+---------+-------------+

    | id | select_type | table     | type | possible_keys  | key  | key_len | ref  | rows    | Extra       |

    +----+-------------+-----------+------+----------------+------+---------+------+---------+-------------+

    |  1 | SIMPLE      | test_date | ALL  | ind_gmt_create | NULL | NULL    | NULL | 2849555 | Using where |

    +----+-------------+-----------+------+----------------+------+---------+------+---------+-------------+

    | Warning | 1739 | Cannot use range access on index 'ind_gmt_create' due to type or collation conversion on field 'gmt_create'      

  • 相关阅读:
    python3之datetime模块
    python3之time模块
    前端面试题01
    前端面试题02
    angularjs
    nodejs
    android 报错记录
    android知识点回顾二
    android知识点回顾
    Broadcast广播代码例子
  • 原文地址:https://www.cnblogs.com/yuyue2014/p/5195263.html
Copyright © 2020-2023  润新知