我有一个这样的查询:
SELECT * FROM Cases WHERE created_at BETWEEN '2013-05-01' AND '2013-05-01'
但这没有给出任何结果,即使有 1 日的数据。
created_at看起来2013-05-01 22:25:19,我怀疑它与时间有关?如何解决?
created_at
2013-05-01 22:25:19
如果我做更大的日期范围,它工作得很好,但它也应该(包括)与单个日期一起工作。
它 是 包容性的。您正在将日期时间与日期进行比较。 当一天开始时, 第二个日期被解释为午夜。
解决此问题的一种方法是:
SELECT * FROM Cases WHERE cast(created_at as date) BETWEEN '2013-05-01' AND '2013-05-01'
另一种解决方法是显式二进制比较
SELECT * FROM Cases WHERE created_at >= '2013-05-01' AND created_at < '2013-05-02'