SQLの「between」は含まれません 質問する

SQLの「between」は含まれません 質問する

次のようなクエリがあります:

SELECT * FROM Cases WHERE created_at BETWEEN '2013-05-01' AND '2013-05-01'

しかし、1 日にデータがあるにもかかわらず、結果は得られません。

created_atどうやら2013-05-01 22:25:19、時間と関係があるのではないかと思います。どうすれば解決できるでしょうか?

より長い日付範囲を指定すると問題なく動作しますが、単一の日付でも(包括的に)動作するはずです。

ベストアンサー1

それ日付と時刻を比較しています。2番目の日付は真夜中と解釈されます一日が始まるとき

これを修正する 1 つの方法は次のとおりです。

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'

アーロン・バートランドはデートに関する長いブログ記事を書いています(ここ)、そこで彼は、この問題とその他の日付の問題について論じています。

おすすめ記事