作成された日付に関係なく、午前2時から午前3時の間に作成されたレコードのセットを選択したいとします。これを達成する方法はありますか?作成日に関係なく時間範囲内で作成されたレコードを選択します。
データベース:PostgreSQLのではPostgreSQLの
作成された日付に関係なく、午前2時から午前3時の間に作成されたレコードのセットを選択したいとします。これを達成する方法はありますか?作成日に関係なく時間範囲内で作成されたレコードを選択します。
データベース:PostgreSQLのではPostgreSQLの
:
Model.where("created_at::time BETWEEN '14:00:00' AND '15:00:00'")
P.S.時間問合せを処理する前に、Railsのデフォルトのタイムゾーン(UTC)と、ユーザーのタイムゾーンの違いに関連する問題を認識していることを確認してください。
UTC/'Time.zone' /ローカル時間の問題を言及するコメント/アラームを追加してください。時間の取り扱いに関して_any_質問に追加する価値があります。 – mudasobwa
@ mudasobwaと同意します。 –
これは完璧に動作します。ありがとう、トン。しかしただ一つの明確化。 23:00:00から01:00:00の間にチェックする可能性はありますか?これは常に私に空の[ –
あなたは1時00分00秒に23時00分00秒の間で確認するためのいずれかの可能性があるPostgreSQL
でextract
機能の使用はDATE_TIME
SELECT * FROM users WHERE extract(hour from created_at) BETWEEN 2 and 3;
から時間を抽出することができます。
同じことがtime BETWEEN 23 and 1
では動作しませんが、あなたはそれを次のように達成することができます:
SELECT * FROM users WHERE extract(hour from created_at) >= 23 and extract(hour from created_at) < 1;
ありがとう、ディパク。 –
時間に数分で渡す方法はありますか? –
'SELECT * FROM states WHERE updated_at :: time BETWEEN '02:00:00 'と'03:00:00'; ' –
データベースを? –
PostgreSQLデータベース –
@ShabiniRajadas私の答えで23と1の間の時間をチェックするための可能な解決策を追加しました –