1、语法
data_format(createTime,'%Y-%M') = '2020-11'
2、遇到的问题
今天遇到一个坑,在使用 data_format
的时候,我查询 2020-11 没有问题。但是我查询 2020-01 就出了问题。
原因是 data_format
将时间转化为日期的时候 。对于小于10的月份,前面会补 0 如:2020-01 2020-02 但是我前端传的日期格式是2020-1 导致匹配不上。
3、data_format 与 <> 哪一个比较好
对于 data_format
会将数据库里面的数据都转化为字符串,可能会有一点性能问题,同时不走索引。采用下面一种方式可能会好一点。
如:查询2020年1月的数据
select * from xx where data_format(createTime,'%Y-%m') = '2020-01'
select * from xx where createTime >= 2020-01-01 and createTime < 2020-02-01