2012-06-10 30 views
0

我想在表中有一列,它根据同一表中的另一列来计算值。使用来自同一表中另一列的输入的SQL表列

例如, 我有“有效”表“DateManufactured”,“DateExpires” Date Expires列必须计算值,假设为Datemanufactured添加了30天。 我们怎样才能做到这一点在Visual Studio2010->的DataSet设计 - >数据表列 - >属性 - >表达 见相关图片here

什么可以在SQL Server表达式方面可能表达这个? 请建议最佳解决方案。

在此先感谢。

+2

如果'DateExpires'是后'DateManufactured'那么也许你不应该将其存储_always_ 30天。搜索“数据库标准化”应该会让你走上更好的轨道。 – HABO

回答

0

我相信你正在寻找DateAdd

SELECT DATEADD(day, 30, '15 Dec 1988') 
0
select dateadd(day,30,getdate()) 

这将当前日期(GETDATE()) 增加30天了。

+0

这不是我的要求Ruzbeh。请仔细阅读更新后的问题,并查看放置在链接中的图像。 – viento

0

我会建议创建一个存储过程,使用需要插入的值的参数将数据插入到表中。然后您可以根据日期参数进行计算。例如:

Create Procedure InsertValidity 
(
    @City varchar(20), 
    @Area varchar(20), 
    ... 
    @DatePosted datetime, 
    ... 
    @UserID 
) 

as 

declare @DurationFrom datetime 
set @DurationFrom = (select DATEADD(dd,30,@DatePosted) 

insert into Validity (City, Area, ..., DatePosted, ... UserID) 
values(@City, @Area, ..., @DatePosted,[email protected],[email protected]) 

这应该可以解决您的问题。只需将您的其他数据替换为...来完成脚本,然后在应用程序中执行存储的过程。

感谢 Ĵ

相关问题