Code Bye

讨教下日期查询问题

今天在Mysql日期查询时遇到一个问题
WHERE 创建日期 BETWEEN "{1}" AND "{2}""

创建日期在数据库的格式是DateTime格式
例如给1传入的值是2016-05和传入的值是2016-05-01的结果完全不一样,这是为什么呢?

解决方案

10

原因是 2016-05 这种并不是mysql认可的日期格式,你在执行这个sql语句的时候应该会得到一个警告。

10

原因是MYSQL无法知道 2016-05 是什么, 如同LZ无法知道 01/02/03 是几月几号一样。
某些MYSQL的版本解释就是 2016-05 = 2011, 然后日期转换成数字进行比较。

10

select cast(“2016-05” as date);
传入参数不是日期,会转化为日期,这个转化的结果是NULL

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明讨教下日期查询问题