如何在存在多个日期值的同个字段进行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

回到顶部