我有一个约会,假设今天日期

declare @d datetime
set @d = '20101014'

我需要

select @d - <six month>

从@d开始的最后六个月包含的实际天数在哪里。

有帮助吗?

解决方案

您可以使用 DATEADD:

select DATEADD(month, -6, @d)

编辑: :如果您需要最多6个月前的天数,则可以使用 DATEDIFF:

select DATEDIFF(day, @d, DATEADD(month, -6, @d))

其他提示

还要检查一下(开发此主题):

我需要根据条件选择算法 - 如果两个日期之间的日期与6个月(从最后一个日期开始)一样多天。

我这样做了:

    case
      when
        DATEDIFF(day, DATEADD(month, -6, @pDateEnd), @pDateEnd)
        >
        DATEDIFF(day, @pDateBegin, @pDateEnd)
      then 'there is no 6-month difference between two dates'
      else 'there is 6-month difference ore more between two dates'
    end
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top