当前位置:  开发笔记 > 数据库 > 正文

SQL - 如何检查表中的新数据?

如何解决《SQL-如何检查表中的新数据?》经验,为你挑选了2个好方法。

我需要创建一个存储过程,在执行检查时是否在过去12小时内将任何新行添加到表中.如果没有,则必须向收件人发送警告电子邮件.

我有发送电子邮件的程序,但问题是查询本身.我想我必须创建一个使用当前日期的sql命令,并将其与行中的日期进行比较.但我是SQL的初学者,所以我甚至无法使用正确的单词在谷歌上找到任何东西.

精简版:

使用MS SQL Server 2005,如何检查日期,然后根据是否在过去12小时内创建新行返回结果,并使用该结果来决定是否发送电子邮件?



1> John Sansom..:

这样的事情应该按照你的意愿行事.

Select ID
from TableName
where CreatedDate >= dateadd(hour,-12,getDate())

希望这很清楚,但请随时提出进一步的问题.

干杯,约翰



2> Frans Bouma..:

假设表中的日期字段是'CreateDate',它的类型是DateTime.您与之比较的时间是:GETDATE()(返回日期+时间)要在此之前获得12小时的日期时间值,请使用DATEADD完成:DATEADD(小时,-12,GETDATE())

所以,如果我们想要在过去12小时内添加的行数,我们会这样做:

SELECT COUNT(*)
FROM Table
WHERE CreateDate >= DATEADD(hour, -12, GETDATE())

在你的proc中,你要将这个查询的结果存储到一个变量中并检查它是否> 0,所以:

DECLARE @amount int
SELECT @amount=COUNT(*)
FROM Table
WHERE CreateDate >= DATEADD(hour, -12, GETDATE())

然后你会检查@amount变量是否> 0.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有