如果是季度的第一天,则执行插入语句,如果不是,则无

If it's the first day of the quarter execute insert statement, if not, nothing

提问人:bmt8895 提问时间:4/25/2023 最后编辑:GMBbmt8895 更新时间:4/25/2023 访问量:37

问:

我正在尝试编写代码以永久执行插入语句。我想在每个季度的第一天执行插入语句。该语句将每天运行。它应该问,今天是本季度的第一天吗?如果没有,则不会发生任何事情。如果是,则将运行 insert 语句。

我已经使用过这个功能,但似乎什么也做不了。QUARTER()

SQL SQL Server if 语句 日期算术

评论

4赞 Thom A 4/25/2023
为什么要让它每天运行,检查它是否是季度的第一天?例如,代理可以在每个 3 个月的第一天轻松运行任务。

答:

2赞 GMB 4/25/2023 #1

免责声明:正如@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