我有一种情况,我有一个包含两个日期lke startdate和enddate 的表以及一个存在变量@offset的过程。TSQL CODE为变量设置值
我需要编写一个tsql代码,用于在当前日期落入表中的开始日期和结束日期之间时将偏移值设置为x。所以我必须检查当前日期是否在表中的startdate和enddate之间,然后设置该值。如果没有,我必须将偏移值设置为y。我不得不在自己的程序中这样做。
感谢您的帮助。
我有一种情况,我有一个包含两个日期lke startdate和enddate 的表以及一个存在变量@offset的过程。TSQL CODE为变量设置值
我需要编写一个tsql代码,用于在当前日期落入表中的开始日期和结束日期之间时将偏移值设置为x。所以我必须检查当前日期是否在表中的startdate和enddate之间,然后设置该值。如果没有,我必须将偏移值设置为y。我不得不在自己的程序中这样做。
感谢您的帮助。
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
试试这个:
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 [email protected])
Set @Start = @Start + 1;
IF (GetDate() < select EndDate from yourTable where [email protected])
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;
注:没有测试。
我试图写一个case语句,但我无法从整个表中检查当前日期。 – kris
'Set @offset = Value' – Sami
这听起来像你还在想像一个非sql程序员。什么是你必须做的 - 它可以在不使用IF语句的情况下在sql中完成。记住在SQL中你想使用set而不是单个值。 – Hogan