我在使用以下内容时遇到问题:
Column_Name BETWEEN @StartDate AND @EndDate.
这是因为当时的 @EndDate = 00:00:00.000 并没有获取当天的所有值。
如何将@EndDate(始终为 00:00:00.000)转换为始终为 Date + 23:59:59.999?
原文由 mameesh 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在使用以下内容时遇到问题:
Column_Name BETWEEN @StartDate AND @EndDate.
这是因为当时的 @EndDate = 00:00:00.000 并没有获取当天的所有值。
如何将@EndDate(始终为 00:00:00.000)转换为始终为 Date + 23:59:59.999?
原文由 mameesh 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用部件功能中的任何日期变体。例如,让我们使用 DATETIMEFROMPARTS :
DECLARE @d DATETIME2(0) = '2011-10-07 04:32:12.000';
SELECT DATETIMEFROMPARTS(YEAR(@d), MONTH(@d), DAY(@d), 23, 59, 59, 0);
-- 2011-10-07 23:59:59
原文由 gotqn 发布,翻译遵循 CC BY-SA 4.0 许可协议
避免需要添加 EndDate + 23:59:59.999 的一种选择是不使用
between
比较,而是使用column_name >= @StartDate and column_name < @EndDate +1