【问题标题】:Find any of days is fall under list of dates [duplicate]查找任何日期属于日期列表[重复]
【发布时间】:2012-08-13 08:42:20
【问题描述】:

我有一个表,它有两列 FromDateToDate

例如。

ID  From Date   To Date
1   2012-01-02  2012-01-07 
2   2012-01-08  2012-01-14
3   2012-01-15  2012-01-21
4   2012-01-22  2012-01-28 

我想要做的是当我传递新的 FromTo 日期时,以检查如果新日期范围属于此日期中的任何一个,请将此表用于查找关联 ID 值。 (我没有传递表格中已经存在的确切 from 和 Todate 值)

例如,如果我将 2012/01/25 作为 From 和 2012/02/03 作为 To Date 它应该返回 4。

我不太确定如何解决这个问题。

有什么帮助吗?

谢谢

【问题讨论】:

    标签: sql sql-server sql-server-2008 date-range


    【解决方案1】:
    SELECT
      *
    FROM
      yourTable
    WHERE
          to_date   >= @from_date_parameter
      AND from_date <= @to_date_parameter
    

    【讨论】:

    • +1:谢谢。 hims056 提前 1 分钟 :)
    • @huMptyduMpty - 实际上,1 分钟后。
    【解决方案2】:
    SELECT ID FROM MyTable
    WHERE FromDate<= '2012/02/03' AND ToDate>= '2012/01/25'
    

    See this SQLFiddle

    【讨论】:

    • 应该是AND 而不是OR。如果数据保持记录2099-01-01 to 2099-12-31,则它们都是&gt;= '2012/01/25',因此通过了您当前的测试...
    • +1 : Dems 其实早!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多