从DATETIME中剥离日期的最佳方法是什么,以便只留下时间来进行比较?
我知道我可以做到以下几点:
CONVERT(DATETIME, CONVERT(VARCHAR(8), GETDATE(),8))
但这涉及到转换和字符。如果我想检查一个时间(包括分钟)是否在DATETIME列中存储的另外两个时间之间,有没有一种很好的方法可以做到这一点,而不必依赖于转换为字符串?
发布于 2010-07-20 00:45:15
尝试使用Essential SQL Server Date, Time, and DateTime Functions中的TimeOnly函数
create function TimeOnly(@DateTime DateTime)
returns datetime
as
begin
return dateadd(day, -datediff(day, 0, @datetime), @datetime)
end
go
或者简单地将DateTime转换为SQL Server2008中的时间:
declare @time as time
set @time = cast(dateTimeVal as time)
发布于 2010-07-20 00:45:27
如果您使用的是SQL 2008
SELECT CAST(GETDATE() AS TIME)
发布于 2010-07-20 00:45:03
DECLARE
@Now DateTime,
@Today DateTime,
@Time DateTime
SET @Now = GetDate()
SET @Today = DateAdd(dd, DateDiff(dd, 0, @Now), 0)
SET @Time = DateAdd(ss, DateDiff(ss, @Today, @Now), 0)
SELECT @Time
https://stackoverflow.com/questions/3283039
复制相似问题