WHERE子句中的SQL日期和时间

问题描述 投票:0回答:2

我需要在今天的日期晚上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

请指导

sql sql-server-2014 dateadd
2个回答
2
投票

如果您愿意,可以使用日期算法执行此操作:

SET @today = dateadd(minute, -1, cast(dateadd(day, 1, cast(getdate() as date)) as smalldatetime));

我担心想要获得当天的最后一分钟。这表明你可能在日期时间尝试使用between<=。通常最好避免使用构造并使用<


1
投票

你可以使用DATETIMEFROMPARTS

DECLARE @t DATE = GETDATE();
SELECT DATETIMEFROMPARTS(YEAR(@t),MONTH(@t),DAY(@t),23,59,0,0);

DBFidde Demo

© www.soinside.com 2019 - 2024. All rights reserved.