跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教一个数据表时间查询问题?
未分類
15 5 月 2020

请教一个数据表时间查询问题?

请教一个数据表时间查询问题?

資深大佬 : Kylinsun 2

场景:表字段中存在 start_date,end_date 两个字段,当客户端传 start_date 和 end_date 到接口时需要查询出相应得记录。
问题:当表里面存在 start_date=2020-04-27,end_date=2020-05-09 这条记录时,客户端传入 start_date=2020-05-01,end_date=2020-05-20 时,这条记录需要被查出来,可以再数据库层面上解决这个问题吗?
现在的做法:再 service 层上做过滤,不知道有没有更好的方法
大佬有話說 (9)

  • 資深大佬 : opengps

    用 or 条件就行呗?
    开始时间早于指定时间 or 结束时间晚于指定时间

  • 主 資深大佬 : Kylinsun

    @opengps 有想过 or,当我传 start_date=2020-05-10,end_date=2020-05-20 这时候是不应该搜出这条记录的,用 OR 就不行。

  • 資深大佬 : kanezeng

    没看懂,
    正文说:“客户端传入 start_date=2020-05-01,end_date=2020-05-20 时,这条记录需要被查出来”
    二说:“我传 start_date=2020-05-10,end_date=2020-05-20 这时候是不应该搜出这条记录的”
    所以是需要查出来还是不需要查出来?

  • 資深大佬 : kanezeng

    哦,后面的 start_date 不同

  • 資深大佬 : fighterlyt

    这不是数据库的问题,这是整个逻辑不清的问题,这里很明显,如果记录的时间段和传入的时间段有交叉,那就返回, 应该是 start_date<=结束时间 and end_date>=开始时间

  • 資深大佬 : fighterlyt

    给定一个时间段,所有未交叉的只有两种
    1. 未开始 start_date> 结束时间
    2. 已结束 end_data<开始时间

    那么符合要求的,按照结合律,那么是 or 变 and, 条件相反

  • 資深大佬 : kanezeng

    结束时间晚于指定开始时间 And 开始时间早于指定结束时间 ?

  • 資深大佬 : fighterlyt

    分析过程都给出来了 @kanezeng @Kylinsun @opengps

  • 主 資深大佬 : Kylinsun

    可能我描述的不够清晰,时间的交集、并集都需要把结果查询出来。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具