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