在Sqlserver中拆分日期

在Sqlserver中拆分日期,sql,sql-server,Sql,Sql Server,我有一张像下面这样的桌子 ID No FromDate Todate 1 111 2017-03-01 2017-03-15 2 111 2017-03-01 2017-03-08 3 111 2017-03-08 2017-03-15 我有几个问题: 如何识别日期和Corss日期带 将第一个Id拆分为两个日期 如2017-03-01至2017-03-08和2017-03-08至2017-03-15 尝试SQL

我有一张像下面这样的桌子

ID  No     FromDate        Todate
1   111    2017-03-01      2017-03-15
2   111    2017-03-01      2017-03-08
3   111    2017-03-08      2017-03-15
我有几个问题:

  • 如何识别日期和Corss日期带
  • 将第一个Id拆分为两个日期
    如2017-03-01至2017-03-08和2017-03-08至2017-03-15
  • 尝试SQL Server提供的DATEDIFF(datepart、startdate、enddate)函数:

    从您的表中选择ID、NO、FromDate、FromDate+ROUND(DATEDIFF(DAY、FromDate、Todate)/2,0)、Todate


    希望它能帮助您。

    1)什么是Corss Dateband?。2) 这两个日期是如何分开的?你必须更好地解释业务逻辑。也许可以举2到3个例子,这样就可以看到一个模式。