Sql server 2008 SQL Server从日期提取时间并进行比较

Sql server 2008 SQL Server从日期提取时间并进行比较,sql-server-2008,time,compare,Sql Server 2008,Time,Compare,我的问题是如何从datetime字段中提取时间,并将其与从GetDate()函数中提取的另一个时间进行比较 我正在使用SQLServer2008 提前谢谢 选择CONVERT(TIME,GETDATE(),101)将从GETDATE()获取时间。您需要将其存储在变量中,以便在比较中使用。不是很优雅,但很管用 DECLARE @Time1 AS TIME(3) DECLARE @Time2 AS TIME(3) SELECT @Time1 = CONVERT(TIME, GETDATE(), 10

我的问题是如何从
datetime
字段中提取时间,并将其与从
GetDate()
函数中提取的另一个时间进行比较

我正在使用SQLServer2008

提前谢谢

选择CONVERT(TIME,GETDATE(),101)
将从
GETDATE()
获取
时间。您需要将其存储在变量中,以便在比较中使用。不是很优雅,但很管用

DECLARE @Time1 AS TIME(3)
DECLARE @Time2 AS TIME(3)
SELECT @Time1 = CONVERT(TIME, GETDATE(), 101)

SELECT @Time1;

SELECT @Time2 = CONVERT(TIME, DATEADD(MINUTE, 1, GETDATE()), 101);

SELECT @Time2;

SELECT DATEDIFF(SECOND, @Time1, @Time2)

我得到了这个错误:Msg 243,级别16,状态1,第1行类型时间不是定义的系统类型。@Jordan Borisov-那么您可能对服务器版本有错误(
TIME
在2008版本之前不存在),或者您正在使用的数据库设置为较低的兼容级别。否。版本是2008,数据库在兼容性级别上很好。@JordanBorisov:对我来说很好-在SQL Server 2008 R2上(但是
TIME
肯定是在2008版本中引入的)