比较SQL Server中GETDATE()和Datetime2之间的差异

比较SQL Server中GETDATE()和Datetime2之间的差异,sql,sql-server,getdate,Sql,Sql Server,Getdate,我想检查当前时间(GETDATE())和StartTime)之间的时差 这就是我到目前为止所做的: SELECT CheckedOut, GETDATE() AS CurrentDateTime, StartTime FROM TimeRecordModels WHERE CheckedOut = 0; 另外,如果差异大于15小时,我想使boolCheckedOut为真,然后将列名EndTime设置为GETDATE()使用该函数 SELECT CheckedOu

我想检查当前时间(
GETDATE()
)和
StartTime
)之间的时差

这就是我到目前为止所做的:

SELECT 
    CheckedOut, GETDATE() AS CurrentDateTime, StartTime
FROM 
    TimeRecordModels 
WHERE 
    CheckedOut = 0;
另外,如果差异大于15小时,我想使bool
CheckedOut
为真,然后将列名
EndTime
设置为
GETDATE()
使用该函数

SELECT CheckedOut, GETDATE() AS CurrentDateTime, StartTime,
       DATEDIFF(hour, StartTime, GETDATE()) AS HoursDifference
    FROM TimeRecordModels 
    WHERE CheckedOut = 0;
要完成更新,请执行以下操作:

UPDATE TimeRecordModels
    SET CheckedOut = 1,
        EndTime = GETDATE()
    WHERE DATEDIFF(hour, StartTime, GETDATE()) > 15
        AND CheckedOut = 0;

转到BOL并查找DATEDIFF。
DATEDIFF(hour,StartTime,GETDATE())
还要根据您的情况更加具体。根据您对它的看法,1:00和2:59小时之间的差值可能等于或大于1。