WAITFOR DELAY 'HH:MM:SS'
আমি বিশ্বাস করি যে এটি সর্বাধিক সময় অপেক্ষা করতে পারে তা হল 23 ঘন্টা, 59 মিনিট এবং 59 সেকেন্ড।
এটির ব্যবহারটি দেখানোর জন্য এখানে একটি স্কেলারের মূল্যবান ফাংশন রয়েছে; নীচের ফাংশনটি সেকেন্ডের একটি পূর্ণসংখ্যা প্যারামিটার গ্রহণ করবে, এটি এটি এইচএইচ: এমএম: এসএস এ অনুবাদ করে এবং EXEC sp_executesql @sqlcode
ক্যোয়ারী কমান্ড ব্যবহার করে এটি কার্যকর করে । নীচের ফাংশনটি কেবল প্রদর্শনের জন্য, আমি জানি এটি স্কেলার-মূল্যবান ফাংশন হিসাবে সত্যিকার অর্থে উপযুক্ত নয়! :-)
CREATE FUNCTION [dbo].[ufn_DelayFor_MaxTimeIs24Hours]
(
@sec int
)
RETURNS
nvarchar(4)
AS
BEGIN
declare @hours int = @sec / 60 / 60
declare @mins int = (@sec / 60) - (@hours * 60)
declare @secs int = (@sec - ((@hours * 60) * 60)) - (@mins * 60)
IF @hours > 23
BEGIN
select @hours = 23
select @mins = 59
select @secs = 59
-- 'maximum wait time is 23 hours, 59 minutes and 59 seconds.'
END
declare @sql nvarchar(24) = 'WAITFOR DELAY '+char(39)+cast(@hours as nvarchar(2))+':'+CAST(@mins as nvarchar(2))+':'+CAST(@secs as nvarchar(2))+char(39)
exec sp_executesql @sql
return ''
END
যদি আপনি ২৪ ঘণ্টার বেশি দেরি করতে চান তবে আমি আপনাকে @ ডাইস প্যারামিটারটি বেশ কয়েক দিন ব্যবহার করতে এবং ফাংশনটিকে একটি লুপের মধ্যে মোড়ক দেওয়ার জন্য পরামর্শ দিচ্ছি ... যেমন।
Declare @Days int = 5
Declare @CurrentDay int = 1
WHILE @CurrentDay <= @Days
BEGIN
--24 hours, function will run for 23 hours, 59 minutes, 59 seconds per run.
[ufn_DelayFor_MaxTimeIs24Hours] 86400
SELECT @CurrentDay = @CurrentDay + 1
END