我有一个这样的查询:
SELECT * FROM Cases WHERE created_at BETWEEN '2013-05-01' AND '2013-05-01'
但这没有给出任何结果,即使有 1 日的数据。
created_at
看起来像 2013-05-01 22:25:19
,我怀疑它与时间有关?如何解决?
如果我做更大的日期范围,它工作得很好,但它也应该(包括)与单个日期一起工作。
原文由 JBurace 发布,翻译遵循 CC BY-SA 4.0 许可协议
它 是 包容性的。您正在将日期时间与日期进行比较。 当一天开始时, 第二个日期被解释为午夜。
解决此问题的一种方法是:
另一种解决方法是显式二进制比较
Aaron Bertrand 有一篇关于日期的长博客文章( 这里),在那里他讨论了这个和其他日期问题。