Запланируйте выполнение задачи два раза в день между двумя датами

#sql-server-2016 #jobs #sql-agent-job

#sql-server-2016 #Вакансии #sql-agent-job

Вопрос:

Я использую SQL Server 2017. Мне нужно запланировать выполнение задания на 12 часов утра и 12 часов дня для каждого дня с 7 по 27 число каждого месяца. Другими словами, мне нужно запускать свою работу два раза в день между двумя датами в каждом месяце.

Могу ли я сделать это в одной задаче расписания или мне нужно создавать два задания для каждого конкретного дня?

12 часов утра, 7-й месяц введите описание изображения здесь

12 часов вечера 7-й месяц введите описание изображения здесь

и так далее, и так далее.

введите описание изображения здесь

Если мне нужно создавать задание для каждого наведения на каждый день, у меня будет несколько расписаний.

Обновление 1: я сделал это, создав несколько шагов на вкладке расписание, но я хочу сделать это за меньшее количество шагов.

введите описание изображения здесь

Обновление 2: Если я смогу выполнить два шага, как показано ниже, это будет полезно для меня.

1: Происходит каждый месяц между 7 и 27 в 12 часов ночи

2: Происходит каждый месяц между 7 и 27 в 12 часов

Ответ №1:

Один из способов сделать это — проверить, находится ли дата между 7-м и 27-м, используя DATENAME или DATEPART .

 --IF (DATENAME(DAY, GETDATE()) >= 7 AND DATENAME(DAY, GETDATE()) <= 27) 
IF DATEPART(DD, GETDATE()) BETWEEN 7 AND 27
BEGIN
    EXEC [Your Stored Procedure]        
END
  

А затем установите ежедневную частоту, чтобы она начиналась в 12:00 и выполнялась каждые 12 часов.