2

postgresqlテーブルにtimestampz列があり、特定の時間枠内にあるエントリを取得したい

使ってみました

SELECT * FROM table where date BETWEEN '2012-01-01' AND '2012-01-05'

しかし、上記のクエリは指定された日付内にあるいくつかの行を取得できないため、次のようなものを試しました

SELECT * FROM table WHERE date BETWEEN '2012-01-01 00:00:00' AND '2012-01-05 23:59:59'

これは問題なく動作しますが、これをアクティブにするためのより良い方法はありますか?

4

2 に答える 2

5

あなたが試すことができます:

SELECT * 
FROM table 
where date::DATE BETWEEN '2012-01-01'::DATE AND '2012-01-05'::DATE

SQLフィドル

于 2012-09-15T21:28:59.477 に答える
5

それほど良くはありませんが、よりきれいだと思います。

select *
from table
where 
    date >= '2012-01-01' 
    and 
    date < '2012-01-05'::date + 1

「2012-01-05 23:59:59.999999」までをカバーします。

于 2012-09-16T00:50:45.430 に答える