问题:mysql 查询一段日期的数据时(使用between and),如果输入非法日期,如2022-04-31(4月没有31号),会产生什么结果?
1、当mysql存储的日期类型为date,当MySQL遇到日期类型的值超出范围或对该类型无效时,它将该值转换为该类型的“零”值(0000-00-00)。唯一的例外是超出范围的TIME值会被裁剪到该TIME范围的适当端点。–不显示结果
2、当mysql存储的日期类型为[datetime,可以正常查询数据 --正常结果
https://www.lanmper.cn/mysql/c292.html
文档说明
mark:
该网址说如果是date型或者datetime型,都会转换为零值,结果测试与我上面结论有差异,以实际测试为准,尽信书不如无书
当使用MySQL的BETWEEN AND操作符查询日期时,如果输入非法日期(如2022-04-31),对于date类型,MySQL会将该值转换为'0000-00-00',而对于datetime类型,查询仍能正常进行。实际测试结果可能与文档描述存在差异,建议以测试为准。
679

被折叠的 条评论
为什么被折叠?



