2015-12-02 19:26 by pursuer.chen, 13153 阅读, 3 评论, 收藏, 编辑
标签:UPDATE
概述 测试环境:mysql 5.6.21
步骤
创建测试表
CREATE TABLE `product` ( `proID` int...
【mysql】 【innodb】 【测试】 【charset】 【Create】 【update】 【type】 …
今天帮同事处理一个SQL(简化过后的)执行报错:
mysql> select date_format('2013-11-19','Y-m-d') > timediff('2013-11-19', '2013-11-20'); ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for operation '>'
乍一看挺莫名其妙的,查了下手册,发现有这么一段:
The language used for day and month names and abbreviations is controlled by the value of the lc_time_names system variable (Section 9.7, “MySQL Server Locale Support”). The DATE_FORMAT() returns a string with a character set and collation given by character_set_connection and collation_connection so that it can return month and weekday names containing non-ASCII characters.
也就是说,DATE_FORMATE() 函数返回的结果是带有字符集/校验集属性的,而 TIMEDIFF() …
[获取更多]