【发布时间】:2016-03-21 10:47:50
【问题描述】:
我想要一个只在工作日执行的条件, 变量@Executedate 是int 类型,只占用日期时间的天部分,如果@Executeday 是星期六或星期日,则应将其重置为星期一。
这是一段代码,
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 重置为星期一)
【问题讨论】:
-
什么是“day part”、“monday”或“21st”?你已经尝试过了吗?
-
这里是代码。它将每周执行 3 次,隔天执行,如果任何一天是星期六或星期日,@Executeday 会被重置为下周的星期一
标签: sql sql-server sql-server-2012