SQL Server语言 - notify 30,15, 7 days from time



我正在尝试纠正将执行以下任务的SQL查询:

例:

ExpirationDate =  '2018-04-30 00:00:00.000'

当属性设置为在 30 天后过期时...1 个月前,我希望 SQL Server 通过电子邮件通知我该项目即将过期(到期日期(

有人可以给我一些关于我下一步去哪里的指示......这就是我到目前为止尝试过的。. 下面的查询将找到该项目,但是我现在希望SQL Server Agent为返回的每一行向我发送电子邮件,而不是在未返回任何内容时

选择* 来自 [DBO]。[属性] 其中过期日期 <= DateAdd(day ,30 , GetDate(((

下面是有关如何从 sql 服务器作业代理通过电子邮件发送结果的绝佳链接:

https://www.brentozar.com/archive/2014/10/send-query-results-sql-server-agent-job/

至于你的查询:我不会选择*。 明确选择要在电子邮件回复中返回的列。

接下来,我将定义一个变量来保存截止值,这将阻止您对查询中的每一行进行计算。 例:

DECLARE @day30UpperBound DATETIME = DATEADD(Day, 31, cast(getdate() as date));
DECLARE @day30LowerBound DATETIME = DATEADD(Day, 30, cast(getdate() as date));

然后,您可以使用以下方法查询结果:

SELECT explicitColumnList FROM [dbo].[Property] 
WHERE expirationdate BETWEEN @day30LowerBound AND @day30UpperBound

此特定示例应为您提供过期日期在 30 天内的属性,从午夜的当前时间到午夜的 31 天 - 因此,从当前日期起 30 天的完整 24 小时窗口。

您可以轻松地为 15 天和 7 天的报告重现此内容。 您可以将所有 3 个报告放入一个工作代理中。 或者你可以为这 3 个中的每一个做一个不同的工作。

如果这是您想要的,您必须研究一下如何只做工作日。

相关内容

最新更新