TSQL CODE为变量设置值

时间:2016-12-01 14:44:49

标签: sql sql-server tsql stored-procedures case

我有一种情况,我有一个表有两个日期lke startdate和enddate 以及一个变量@offset的过程。

当当前日期介于表的开始日期和结束日期之间时,我需要编写一个tsql代码来将偏移值设置为x。所以我必须从表中检查当前日期是在startdate和enddate之间,然后设置值。如果不是我必须将偏移值设置为y。

我必须在自己的程序中这样做。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

SET @offset = CASE WHEN GETDATE() BETWEEN @StartDate AND @EndDate THEN x ELSE y END

也许试试这个。

DECLARE @OffsetTable (placeholder INT)
INSERT INTO @OffsetTable
SELECT 1
FROM Table 
WHERE GETDATE() BETWEEN StartDate AND EndDate

if (@@rowcount > 0)
SET @offset = x
ELSE SET @offset = y

答案 1 :(得分:0)

试试这个:

DECLARE @I Int;
DECLARE @Start Int =0;
DECLARE @End Int=0;
Set @I = Select Count(*) From YourTable;
While @I > 0
Begin
IF (GetDate() > select StartDate from yourTable where YourTableID=@I)
Set @Start = @Start + 1;
IF (GetDate() < select EndDate from yourTable where YourTableID=@I)
Set @End = @End + 1;
Set @I = @I -1;
End;
Set @I = Select Count(*) From YourTable;
If (@Satr = I) And (@End = I)
Set @Offset = X
Else Set @Offset = Y;

注意:未经过测试。