Sql 仅在工作日(即周一至周五)执行的if条件
我想要一个只在工作日执行的条件, 变量@Executedate为int类型,仅取日期时间的日部分,如果@Executeday为周六或周日,则应重置为周一 这是一段代码Sql 仅在工作日(即周一至周五)执行的if条件,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我想要一个只在工作日执行的条件, 变量@Executedate为int类型,仅取日期时间的日部分,如果@Executeday为周六或周日,则应重置为周一 这是一段代码 Declare @Executeday int declare @time varchar(200) set @time = convert(varchar(8), getdate(), 108) if day(getdate()) < 16 begin
Declare @Executeday int
declare @time varchar(200)
set @time = convert(varchar(8), getdate(), 108)
if day(getdate()) < 16
begin
set @Executeday = (select top 1 Description from cts_configuration(nolock) where name like 'ReminderMailerFirstFortNightDay')
end
else
begin
set @Executeday = (select top 1 Description from cts_configuration(nolock) where name like 'ReminderMailerSecondFortNightDay')
end
if (day(getdate())=@Executeday) or (day(getdate())=@Executeday+2) or (day(getdate())=@Executeday+4)
begin
if(@time between '10:00:00' and '11:00:00')
begin
我想要这里的if条件…将@executeday重置为周一,如果是sat或sun周一或21日是哪一天?你已经试过什么了吗?这是代码。它将每周执行3次,每隔一天执行,如果任何一天是周六或周日,@Executeday shud将重置为下周的周一
DECLARE @ExecuteDay AS int = 7;
DECLARE @Today AS date = GETDATE();
DECLARE @ExecuteDate AS date = DATEADD(day, @ExecuteDay - DATEPART(day, @Today), @Today);
DECLARE @WeekDay AS int = (@@DATEFIRST + DATEPART(WEEKDAY, @ExecuteDate)) % 7;
IF @WeekDay IN (0, 1)
SET @ExecuteDate = DATEADD(day, 2 - @WeekDay, @ExecuteDate)
PRINT @ExecuteDate