我正在尝试编写代码以永久执行插入语句。我想在每个季度的第一天执行插入语句。该语句将每天运行。它应该问,今天是季度的第一天吗?如果没有,则什么也不会发生。如果是,插入语句将运行。
我试过使用
QUARTER()
函数,但似乎什么也做不了。
免责声明:正如@Thom A 所评论的,计划任务在每个季度的第一天运行而不是每天执行它然后忽略非季度开始可能会更简单。
关于您的问题:您可以使用日期函数来检查今天是否是一个季度的第一天,例如使用如下谓词:
day(getdate()) = 1 -- first day of the month...
and month(getdate()) in (1, 4, 7, 10) -- in month 1 (january), 4 (april), 7 (july), 10 (october)
我们也可以这样表述:
day(getdate()) = 1
and month(getdate()) % 3 = 1
你可以把谓词放在你的
insert
查询中,比如:
insert into mytable (col1, col2, col3)
select v.*
from ( values ('val1', 'val2', 'val3') )
where day(getdate()) = 1 and month(getdate()) % 3 = 1