开发者社区> 问答> 正文

MYSQL范围查询问题

假如某表中有两个字段:开始时间(start_time)和结束时间(end_time),都是整数字段格式库存为时间戳。
现在想要查询出 “现在时间”(current_time,也是时间戳) 在开始时间和结束范围以内的数据。
规则如下:
1.开始时间为NULL,则不限制开始时间,即 现在时间 之前的数据都符合记录
2.结束时间为NULL,则不限制结束时间,即 现在时间以后的数据都符合记录
3.如果开始时间和结束时间都为NULL,那么查询所有的记录。
请各位指教一下。

展开
收起
落地花开啦 2016-02-08 14:35:28 3031 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    `( start_time IS NULL and current_time< end_time )
    or ( end_time IS NULL and and start_time is not null current_time> start_time )
    or( start_time IS NULL and end_time IS NULL)
    or ( current_time> start_time and current_time< end_time )`
    这代表了四种情形:
    1.开始时间为NULL,则不限制开始时间,即 现在时间 在 结束时间 之前的数据都符合记录
    2.结束时间为NULL,则不限制结束时间,即 现在时间 在 开始时间 以后的数据都符合记录
    3.如果开始时间和结束时间都为NULL,那么查询所有的记录。
    4.如果开始时间和结束时间都为不为NULL,那么查询当前时间在此之间的数据

    2019-07-17 18:39:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像