如何使用存储过程在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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...