我有一种情况,我有一个表有两个日期lke startdate和enddate 以及一个变量@offset的过程。
当当前日期介于表的开始日期和结束日期之间时,我需要编写一个tsql代码来将偏移值设置为x。所以我必须从表中检查当前日期是在startdate和enddate之间,然后设置值。如果不是我必须将偏移值设置为y。
我必须在自己的程序中这样做。
感谢您的帮助。
答案 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;
注意:未经过测试。