У меня есть запрос, который должен быть выполнен только тогда, когда мейнфрейм вверх. В течение этих часов мейнфрейм не работает вторник - суббота - с 1 до 6 часов, по воскресеньям - с 1 до 12 часов.Как выполнить запрос только в том случае, если мэйнфрейм встал?
Я пытаюсь объявить переменную, которая получает текущую дату и время, а затем пытается написать логику в инструкции if, чтобы удовлетворить вышеуказанному условию.
if @new_que_stat_cd = 'U'
BEGIN
--declare @recv_time datetime = getdate()
--if CASE WHEN datepart(dw,@recv_time) in ('SUNDAY') AND
--,'TUESDAY','WEDNESDAY','
--declare @ident int = IDENT_CURRENT('SADEV.RO_Transcript.ETQueueCtrl')
UPDATE NEW SET [ETQueueCtrlStatusCd] = 'U'
from sadev.RO_Transcript.ETQueueCtrl NEW
where new.[ETQueueCtrlStatusCd] = 'S'
AND new.ErrorFl = 'N'
and new.VendorTransactionID is not null
and new.VendorTransactionIDRcvdDate is not null
and new.ETQueueCtrlID = @queuectrl_id
select new.VendorTransactionIDRcvdDate
from sadev.RO_Transcript.ETQueueCtrl NEW
where new.[ETQueueCtrlStatusCd] = @new_que_stat_cd
AND new.ErrorFl = 'N'
and new.VendorTransactionID is not null
and new.ETQueueCtrlID = @queuectrl_id
END
БУДЕТ ЭТО ЛОГИКА РАБОТЫ ВЫШЕ УСЛОВИЕ
declare @recv_time datetime = getdate()
if (convert(varchar,(datepart(DAY,@recv_time))) in ('SUNDAY')
AND convert(varchar, @recv_time, 114) between convert(datetime,'01:00') and convert(datetime,'12:00'))
or
convert(varchar,(datepart(DAY,@recv_time))) in ('Tuesday','Wednesday','Thursday','Friday','Saturday')
AND convert(varchar, @recv_time, 114) between convert(datetime,'01:00') and convert(datetime,'06:00')
будет работать по вышеуказанному запросу – sam