根据当前日期和固定开始日期派生日期列

时间:2015-09-21 11:23:58

标签: sql sql-server dynamic sql-server-2008-r2

我有以下两列:

date (datetime),
month_after_release (int)

这些列每月填写为incremental update

的一部分

我们假设2015年1月1日有一个版本。这意味着我们目前处于发布后的第9个月[formula: round off((current date - release date)/30,0)+1 = 9]。因此,如果我现在正在导入具有当前日期的数据(2015年9月21日),则应按以下方式填充这两列:

date = 2015-09-21 00:00:00.000
month_after_release = 9

10月份,导入的数据应该会获得以下信息:

date = 2015-10-21 00:00:00.000
month_after_release = 10

我怎样才能做到这一点?我想到的一种可能性就是有一个单独的映射表,它将每个日期映射到" month_after_release",但我想知道是否有更好的可能性?

发布时的信息存储在单独的表中,如下所示:

ReleaseID,
Release_start_date

1 个答案:

答案 0 :(得分:1)

select releaseDate, DateDiff(MM, releaseDate, getdate()) MonthsSinceRelease
from table t

这就是你如何计算它。