我在数据库表中有两个日期时间列:@Start 和@End。
两列都包含日期和时间,例如:
@Start: 2018-10-01 19:00:00
@End: 2018-10-10 23:59:00
考虑到日期和时间,我想知道当前日期是否恰好在两个日期时间之间。
因此,2018-10-08 16:37
和 2018-10-10 23:59:00
将匹配此范围
而 2018-10-11 00:00:00
则不会。
(在这种情况下,此日期比结束日期晚一分钟,因此它不在我的日期时间范围内)。
SELECT Id FROM Table1 WHERE GETDATE() BETWEEN Start AND End
我不在实际代码中使用 GETDATE(),我使用一个参数。问题是当前日期参数可能包含秒和毫秒,如 23:59:59.123
。我的代码将此类日期视为不符合给定范围。但我不关心 s/ms。
有解决办法吗?
我想要达到的精度是分钟。所以我什至不需要考虑秒数或毫秒数。我将使用的日期时间格式为“yyyy-MM-dd hh-mm”,但我不知道如何使用 BETWEEN 子句将开始和结束转换为显示的格式,以便我可以比较日期。
最佳答案
你似乎想要这个逻辑:
WHERE GETDATE() >= Start
AND GETDATE() < DATEADD(minute, 1, End)
假设End
的时间部分是23:59:00
它涵盖了 23:59:00
之间的所有可能值和 23:59:59.999...999
.
https://stackoverflow.com/questions/52703745/
相关文章:
amazon-web-services - 提供的证书不是有效的自签名证书。请提供有效的自签名证书或
xcode - 如何解决错误 'app' 的配置设置冲突。 "app"已自动签名,
spring - 在 Spring RestTemplate 中设置 Authorization h
amazon-web-services - AWS Api Gateway作为HTTP代理正在破坏二
fonts - Webstorm with Java 1.8,字体粗细改变
xpages - 适用于 Domino Designer V10 的 Openntf Domino