遇到这种表设计,叔叔要生气了!/doge
有个表 aaa 的时间字段前同事只存了 YYYY-MM,比如 2021-01 这种格式
| ID | money | create_time |
|---|---|---|
| 1 | xxx | 2021-01 |
| 2 | xxx | 2021-02 |
| 3 | xxx | 2021-03 |
| 4 | xxx | 2021-04 |
现在有个需求是前端传开始月份和结束月份来过滤记录。比如传 beginMonth 为 2021-02 、endMonth 为 2021-04 进来要得到 2 月、3 月和 4 月的数据
数据库用的是 MySQL,ORM 框架用的是 Mybatis
我试了几种方式都不成功,比如这样
beginMonth 和 endMonth 转成了日期传进来
SELECT
*
FROM
aaa
WHERE
create_time >= #{beginMonth}
AND
create_time <= #{endMonth}
又比如这样
begMonth 和 endMonth 字符串的形式传进来
SELECT
*
FROM
aaa
WHERE
DATE_FORMAT(create_time , '%Y-%m') >= #{beginMonth}
AND
DATE_FORMAT(create_time , '%Y-%m') <= #{endMonth}
都没法得到正确的返回。求助……
Thanks in advance !