sql >> データベース >  >> RDS >> PostgreSQL

2つのタイムスタンプ間のレコードの選択

    何が問題になっていますか:

    SELECT a,b,c
    FROM   table
    WHERE  xtime BETWEEN '2012-04-01 23:55:00'::timestamp
                     AND now()::timestamp;
    

    秒数をintervalとして操作する場合

    ...
    WHERE  xtime BETWEEN now()::timestamp - (interval '1s') * $selectedtimeParm
                     AND now()::timestamp;
    

    標準のISO8601日付形式YYYY-MM-DDh24:mi:ssをどのように使用したかに注意してください。 これは、どのロケールまたはDateStyleでも明確です。 設定。

    BETWEENの最初の値にも注意してください コンストラクトは小さいものでなければなりません。どちらの値が小さいかわからない場合は、 BETWEENSYMMETRIC<を使用してください。 / code> 代わりに。

    あなたの質問では、日時タイプ timestampを参照します 「日付」、「時間」、「期間」として。タイトルでは「タイムフレーム」という用語を使用していましたが、これを「タイムスタンプ」に変更しました。これらの用語はすべて間違っています。それらを自由に交換すると、質問がさらに理解しにくくなります。

    それと、質問にタグを付けただけであるという事実 psql (問題はコマンドライン端末にはほとんど関係しません)何日も誰も答えなかった理由を説明するのに役立つかもしれません。通常、この辺りはほんの数分です。私はあなたの質問を理解するのに苦労しました、それを数回読まなければなりませんでした。

    dateのデータ型を理解する必要があります 、間隔 time およびtimestamp -タイムゾーンの有無にかかわらず。マニュアルの「日付/時刻タイプ」の章を読むことから始めます> 。

    エラーメッセージも大いに役立ちました。



    1. MySQL CSVインポート:日時値

    2. mysqlから階層メニューを取得する方法

    3. 外部キーとインデックス

    4. 日付パラメータを渡して日付範囲クエリを作成する