遇到这种表设计,叔叔要生气了!/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 !
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.