小编典典

从日期时间开始的TSQL剥离日期

sql

从DATETIME中删除 日期 的最佳方法是什么,以便仅剩下 时间 进行比较?

我知道我可以执行以下操作:

CONVERT(DATETIME, CONVERT(VARCHAR(8), GETDATE(),8))

但这涉及转换和字符。如果我想检查DATETIME列中是否存储了另外两个时间之间的时间(包括分钟),是否有一种优雅的方法可以执行此操作而不必依赖转换为字符串?


阅读 213

收藏
2021-03-10

共1个答案

小编典典

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)
2021-03-10