从DATETIME剥离日期的最佳方法是什么,所以只剩下时间进行比较?
我知道我可以做到以下几点:
CONVERT(DATETIME,CONVERT(VARCHAR(8),GETDATE(),8))
但这涉及转换和字符.如果我想检查时间(包括分钟)是否存储在DATETIME列中的其他两次之间,是否有一种优雅的方法来执行此操作而不必依赖于转换为字符串?
解决方法
尝试
Essential SQL Server Date,Time,and DateTime Functions的TimeOnly函数:
create function TimeOnly(@DateTime DateTime) returns datetime as begin return dateadd(day,-datediff(day,@datetime),@datetime) end go
或者只是在sql Server 2008中将DateTime转换为时间:
declare @time as time set @time = cast(dateTimeVal as time)