## MYsql 8数据库select * from t_ordersetting where orderDate between ‘2020-2-1’ and '2020-2-31’语句竟然不能用
SMM项目,想实现查询每个月的全部数据,代码如下
输入一个日期,获取此日期下 当前月份的 全部数据
//SERVICE
//根据月份查询对应的预约设置数据
public List
**
//DAO
**
<select id="getOrderSettingByMonth" parameterType="map" resultType="com.itheima.pojo.OrderSetting">
select * from t_ordersetting where orderDate between #{begin} and #{end}
</select>
//执行结果是查不出数据的
个人觉得好像是mysql8,使用between…and…查询时,当查询的右边界为2021-2-31时,超出了实际范围(因为2月不可能有31天)
于是直接写了sql语句进行测试 结果如下
between 2021-2-1 and 2021-2-29 ----可以查出数据----21年2月有29天
between 2021-2-1 and 2021-2-30 ----无数据----超出了真实的范围
between 2021-3-1 and 2021-3-31 ----可以查出数据----21年3月有31天
between 2021-4-1 and 2021-4-31 ----无数据----21年4月是30天
between 2021-4-1 and 2021-4-30 ----可以查出数据
between 2020-2-1 and 2021-2-28 ----可以查出数据-----20年2月是28天
好像确实是要求 between … and …的取值范围要符合真实存在的范围,否则无法进行查询。
那么请问各位大佬,这种情况该如何解决呢,小弟拜谢各位了!!!