将时间 23:59:59.999 添加到结束日期之间

新手上路,请多包涵

我在使用以下内容时遇到问题:

 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 许可协议

阅读 983
2 个回答

避免需要添加 EndDate + 23:59:59.999 的一种选择是不使用 between 比较,而是使用 column_name >= @StartDate and column_name < @EndDate +1

原文由 dave 发布,翻译遵循 CC BY-SA 3.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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进