如何解决如何使用存储过程在mssql数据库中获取新记录
我有一个选择查询,可以将两个表连接起来以获取数据。我想每天运行查询,并返回当天插入的最新行。
这是我正在使用的查询。我对存储过程很陌生。谁能帮我如何使用它来获取新行。
select [dbo].[Archive1].id,[dbo].[Archive1].loadId,[dbo].[Archive2].costResponse
from [dbo].[Archive1],[dbo].[Archive2]
where [dbo].[Archive1].id = [dbo].[Archive2].transactionNumber;
解决方法
我能够编写适用于我的用例的过程
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'getReport')
DROP PROCEDURE getReport
GO
CREATE PROCEDURE getReport AS
BEGIN
DECLARE @nowLocal DATETIMEOFFSET = getDate() AT TIME ZONE 'UTC' AT TIME ZONE 'Central Standard Time'
DECLARE @midnightLocal DATETIMEOFFSET = CONVERT(DATETIME2,CAST(@nowLocal as DATE)) AT TIME ZONE 'Central Standard Time'
DECLARE @dayStart DATETIMEOFFSET = DATEADD(hh,-17,@midnightLocal)
DECLARE @reportTime DATETIMEOFFSET = DATEADD(hh,07,@midnightLocal)
if @nowlocal < @reportTime
SELECT @dayStart = DATEADD(d,-1,@dayStart)
DECLARE @dayEnd DATETIMEOFFSET = DATEADD(ms,86399999,@dayStart)
select @dayStart as dayStart,@dayEnd as dayEnd,@reportTime as reportTime,@midnightLocal as midnight
select [dbo].[Archive1].id,[dbo].[Archive1].loadId,[dbo].[Archive2].costResponse
from [dbo].[Archive1],[dbo].[Archive2]
where [dbo].[Archive1].id = [dbo].[Archive2].transactionNumber
BETWEEN @dayStart AT TIME ZONE 'Central Standard Time' AT TIME ZONE 'UTC' and @dayEnd AT TIME ZONE 'Central Standard Time' AT TIME ZONE 'UTC'
END
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。