sql—在两个不同的列之间创建时间戳范围

vmdwslir  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(274)

我试图创建一个查询,在where子句中,我希望在两个不同的时间戳列(starttime和endtime)之间有一个时间戳范围。我尝试了此操作,但得到了0个结果:

select *
from db.db_users
where ('<user_start_date>' >= starttime and '<user_end_date>' <= endtime)
and username ilike '%thodoris%'
limit 5;

用户\开始\日期和用户\结束\日期应该是用户的值,它们之间不同:例如(2020-07-10 00:00:00&2020-07-10 23:59:59)。
我想问有没有别的办法。

uurv41yg

uurv41yg1#

首先,应该使用参数。第二,完全重叠的逻辑是:

where start_date < :user_start_date and
      end_date > :user_end_date

对于部分重叠:

where start_date < :user_send_date and
      end_date > :user_start_date

相关问题