MySQL中的date_formate功能使用注意点

MySQL中的date_formate功能使用注意点
今天,帮助您的同事处理一个SQL(简化)来执行这个错误
MySQL >选择date_format('2013-11-19 ','y-m-d ')> timediff('2013-11-19 ','2013-11-20);

错误1267(hy000):非法的混合排序规则(utf8_general_ci,强制)和(latin1_swedish_ci,数值)的操作>

乍一看,这是很费解的。

用于日和月的名称和缩写语言是缩写,使用了9.7。

的date_format()返回一个字符集和整理,设置字符串,它也被称为以下三个方面。

也就是说,对date_formate结果()与字符集/检查设置属性函数返回,而timediff()函数没有字符集/检查设置属性。让我们核实一下。
MySQL > SET NAMES UTF8;
>选择MySQL字符集(date_format('2013-11-19 ','y-m-d ')),字符集(timediff('2013-11-19 ','2013-11-20 '));
-------------------------------------------- ----------------------------------------------- + + +
|字符集(date_format('2013-11-19 ','y-m-d ')字符集(timediff)|('2013-11-19 ','2013-11-20)|)
-------------------------------------------- ----------------------------------------------- + + +
| UTF8 |二进制|
-------------------------------------------- ----------------------------------------------- + + +

MySQL >集名称GB2312;
>选择MySQL字符集(date_format('2013-11-19 ','y-m-d ')),字符集(timediff('2013-11-19 ','2013-11-20 '));
-------------------------------------------- ----------------------------------------------- + + +
|字符集(date_format('2013-11-19 ','y-m-d ')字符集(timediff)|('2013-11-19 ','2013-11-20)|)
-------------------------------------------- ----------------------------------------------- + + +
| GB2312 |二进制|
-------------------------------------------- ----------------------------------------------- + + +

可以看出,随着character_set_connection通过设置值collation_connection修改,对date_format结果集()函数也不同。在这种情况下,如果你想正常工作,您需要将结果转换为一个字符集,例如:
MySQL >选择date_format('2013-11-19 ','y-m-d ')>转换(timediff('2013-11-19 ','2013-11-20)使用UTF8);
---------------------------------------------------------------------------------------------- + +
| date_format('2013-11-19 ','y-m-d ')>转换(timediff('2013-11-19 ','2013-11-20)使用UTF8)|
---------------------------------------------------------------------------------------------- + +
1 | |
---------------------------------------------------------------------------------------------- + +

没关系)

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部