stored-procedures - 如何使用存储过程在 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
推荐阅读
- azure-functions - 暂停/禁用 Azure 逻辑应用函数上的计时器 - 触发器和函数之间的区别?
- python - 将数据库文件中的表连接到 python
- rust - Rust Diesel 无法编译并出现链接器错误
- c++ - Windows 控制台应用程序 - 是否可以检测(并处理)窗口关闭 (X) 按钮被点击?
- .net - 从 Web Api Project 调用 Api 的最佳方式
- swift - 为什么我不能编辑按钮形状?
- javascript - 未捕获的 DOMException:无法在“CSSStyleSheet”上执行“addRule”:无法访问 StyleSheet 以插入规则
- python - 谁能告诉我我的代码中缺少什么,我不能使用不和谐的用户名
- c# - ASP.NET Core WebApi 身份验证
- javascript - .val() equals multiple values