如何在存在多个日期值的同个字段进行sql查询出特定日期范围的数据?
字段realStartTime的值可能取值类似:2022-09-14 11:38:21,2022-09-14 18:00:00,即是存在逗号分割的多个时间。
我想实现的是通过传入一个时间范围,如果realStartTime分割后的某个时间在此范围内,即可以查询出来,如果realStartTime有多个符合,则最终输出一条结果。
只支持realStartTime取值只有一个时间的写法(mybatis):
<select id="getEventPlanByCodeDateLimitSimple" resultMap="EventPlanRecordAllMap">select
epr.*
from
event_plan_record epr
where
epr.realStartTime BETWEEN #{startDate} AND #{endDate} order by epr.realStartTime desc limit #{page},#{count};
</select>
回答:
只有把realStartTime分割开来,然后判定所有可能想交的情况:
select epr.*
from
event_plan_record epr
where
substring_index('epr.realStartTime', ',', 1) BETWEEN #{startDate} AND #{endDate}
or substring_index('epr.realStartTime', ',', -1) BETWEEN #{startDate} AND #{endDate}
or #{startDate} BETWEEN substring_index('epr.realStartTime', ',', 1) AND substring_index('epr.realStartTime', ',', -1)
or #{endDate} BETWEEN substring_index('epr.realStartTime', ',', 1) AND substring_index('epr.realStartTime', ',', -1)
order by epr.realStartTime desc limit #{page},#{count};
希望能帮助到你。
以上是 如何在存在多个日期值的同个字段进行sql查询出特定日期范围的数据? 的全部内容, 来源链接: utcz.com/p/944721.html