我想编写一个返回3列的过程,原来的表中认为最后一列不存在,这是我想在LastLogin和当前时间之间得到的时差,但是我不知道如何写。到目前为止,这就是我所拥有的,但是我什至不确定这是怎么回事。

ALTER PROCEDURE sp_W_getSesionSupervisor
@Plaza varchar(255),
@UserLevel int

DECLARE @tempSupervisor TABLE (
    UserName varchar(255),
    LastLogin DATETIMEOFFSET,
    tTranscurrido DATETIMEOFFSET
);
BEGIN
    INSERT INTO @tempSupervisor (UserName, LastLogin)
    SELECT UserName, LastLogin FROM UsersAdmin
    WHERE Plaza = @Plaza AND UserLevel = @UserLevel

    UPDATE @tempSupervisor
    SET tTranscurrido = DIFFERENCE(LastLogin, DateTimeOffset)

    SELECT * FROM @tempSupervisor
END

最佳答案

可以通过单个SELECT语句返回相同的结果,例如下面的语句。有程序要求吗?

SELECT用户名,LastLogin,DIFFERENCE(LastLogin,DateTimeOffset)
从UsersAdmin
在哪里Plaza = @Plaza AND UserLevel = @UserLevel

@Plaza和@UserLevel将是查询的参数。如果不需要这些参数,则可以跳过这些参数。

关于mysql - 我如何插入具有一个额外列的临时表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38464461/

10-11 01:33