从DATETIME中删除 日期 的最佳方法是什么,以便仅剩下 时间 进行比较?
我知道我可以执行以下操作:
CONVERT(DATETIME, CONVERT(VARCHAR(8), GETDATE(),8))
但这涉及转换和字符。如果我想检查DATETIME列中是否存储了另外两个时间之间的时间(包括分钟),是否有一种优雅的方法可以执行此操作而不必依赖转换为字符串?
从Essential SQL Server日期,时间和DateTime函数中尝试使用TimeOnly函数:
create function TimeOnly(@DateTime DateTime) returns datetime as begin return dateadd(day, -datediff(day, 0, @datetime), @datetime) end go
或简单地将DateTime转换为SQL Server 2008中的时间:
declare @time as time set @time = cast(dateTimeVal as time)