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

Tsrange-2つの範囲の差を計算する

    ドキュメント

    これを行うには、 lower> 、および upper

    SELECT tsrange(  lower(freetime), lower(appointment)  )  AS before_appointment,
           tsrange(  upper(appointment), upper(freetime)  )  AS after_appointment
    FROM ( VALUES
      (
        '[2017-04-19 09:00, 2017-04-19 12:30)'::tsrange,
        '[2017-04-19 10:30, 2017-04-19 11:30)'::tsrange
      )
    ) AS t(freetime,appointment)
    WHERE freetime @> appointment;
    
                  before_appointment               |               after_appointment               
    -----------------------------------------------+-----------------------------------------------
     ["2017-04-19 09:00:00","2017-04-19 10:30:00") | ["2017-04-19 11:30:00","2017-04-19 12:30:00")
    (1 row)
    



    1. テーブル内の最新のエントリのみを選択するにはどうすればよいですか?

    2. MySQLは挿入時にDATETIMEフィールドに現在の日付を設定しました

    3. Rails 4 / Postgresのschema.rbの列を並べ替えても安全ですか?

    4. MySQL述語プッシュ