从datetime开始的TSQL剥离日期

从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)

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...