T-SQL子句,其中datepart来自字段

时间:2017-12-22 15:09:03

标签: sql-server tsql select datepart

我需要写类似的东西:

select a, b, c 
from table
where dateadd(a, b, c) < getdate()

使用:

a=nvarchar: YY, D, ...
b=int
c=date

对于“b”和“c”没有问题,但是datepart不能是一个字段,只能是静态类型:只是YY,YYYY,D,....

我怎么解决?

实际上问题是另一个问题,但这个系统似乎更容易解决。

最初的问题是,也许你可以用另一种方式解决它:我有一个表的行,在一个叫做X的持续时间内保持有效。

如果此持续时间X以天为单位定义,则闰年存在问题(例如,365天与1年不同)。如果我用年(例如1年)或月来表达,datepart函数帮助我:dateadd(YY,1,dateFrom)是完美的。

所以我认为不要使用以天表示的字段“有效期”,而是使用两个字段,一个用于值,一个用于类型(月,年,周)。

只有那个datepart不允许它。

1 个答案:

答案 0 :(得分:1)

由我自己决定。

{{1}}

不优雅,但有效。