2012-06-10 56 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]) 

這應該可以解決您的問題。只需將您的其他數據替換爲...來完成腳本,然後在應用程序中執行存儲的過程。

感謝 Ĵ

相關問題