我需要在今天的日期晚上11:59使用语句的WHERE子句中的今天日期。例如。如果今天是09/04/2018那么我想要'09 / 04/20188 23:59'。我尝试了以下但没有奏效:
DECLARE @today SMALLDATETIME
SET @today = DATEADD(month, ((YEAR(GETDATE()) - 1900) * 12) + MONTH(GETDATE()) - 1, DAY(GETDATE()) - 1) + ' 23:59:59'
PRINT @today
请指导
如果您愿意,可以使用日期算法执行此操作:
SET @today = dateadd(minute, -1, cast(dateadd(day, 1, cast(getdate() as date)) as smalldatetime));
我担心想要获得当天的最后一分钟。这表明你可能在日期时间尝试使用between
或<=
。通常最好避免使用构造并使用<
。
你可以使用DATETIMEFROMPARTS
:
DECLARE @t DATE = GETDATE();
SELECT DATETIMEFROMPARTS(YEAR(@t),MONTH(@t),DAY(@t),23,59,0,0);