zoukankan      html  css  js  c++  java
  • 2个时间段查询问题

    工作中有时候 遇到 查询一段时间的产品的有效的时候,恰巧这端数据 在数据库里 也有 一个开始时间 结束时间;举个栗子:例如 我有一个产品 有效期是 2014-1-10 到 2014-2-10 号, 我需要查询2014-1-1号 到 2014-2-1的 生效的产品问题, 这样就 牵扯到 2个时间端 查询的问题。

    通常我们的写法为:

    1        (begin_at<=UNIX_TIMESTAMP('2014-1-1') AND end_at>=UNIX_TIMESTAMP('2014-2-1')) 
    2     OR (begin_at<=UNIX_TIMESTAMP('2014-1-1') AND end_at>=UNIX_TIMESTAMP('2014-2-1')) 
    3     OR (begin_at>=UNIX_TIMESTAMP('2014-1-1') AND end_at>=UNIX_TIMESTAMP('2014-2-1')) 
    4     OR (begin_at>=UNIX_TIMESTAMP('2014-1-1') AND end_at<=UNIX_TIMESTAMP('2014-2-1'))

    也就是 4中可能性的 判断 但是 这样子 太过于复杂,其实 可以 用

    begin_at<=UNIX_TIMESTAMP('2014-2-1') AND end_at>=UNIX_TIMESTAMP('2014-1-1')

    我喜欢 叫这种为 交叉算法  嘿嘿~

  • 相关阅读:
    JavaScript基本语法2
    JavaScript的基本语法
    在网页中加入神奇的效果
    一个由表单构成的页面
    进程理论要点
    TCP大文件上传与UDP协议
    socket编程相关阐述
    网络编程
    魔法方法
    元类与单例解析
  • 原文地址:https://www.cnblogs.com/rufus-hua/p/3510949.html
Copyright © 2011-2022 走看看