0

日付を無視して午前9時から午後5時の間に挿入されたすべてのデータを表示する必要があります。

私が試してみました

.where(created_at: Time.parse("9am")..Time.parse("5pm"))

* Time.parseは現在のデータと時間をもたらすため。したがって、この表示は午前9時から午後5時までの今日の結果のみですが、午前9時から午後5時の間に入力されたすべてのデータが必要です*


データベースの時間データフィールドを使用して解決しようとしました。データベースは正しく格納されますが、レールを介してクエリを実行すると、2000年1月1日が時間内に追加されました。

非常に単純な問題ですが、行き詰まっています。

この問題を理解するのを手伝ってください。

4

1 に答える 1

1

PostgreSQLはEXTRACTここで説明されている関数を定義します:http ://www.postgresql.org/docs/current/interactive/functions-datetime.html

次のようなものを使用してクエリを実行できる場合があります。

SELECT * FROM (modelname) WHERE EXTRACT(HOUR FROM created_at) > (minhour) AND EXTRACT(HOUR FROM created_at) < (maxhour);
于 2012-06-14T03:32:58.377 に答える