Postgresql
如何根據 PostgresSQL 中欄位中的日期選擇兩個日期之間的記錄?
我有兩張桌子:
- 1 具有他們第一次訪問的唯一 ID(日期格式)
- 以及具有相同唯一ID、開始欄位(日期欄位)、結束欄位(日期欄位)和地址欄位的歷史地址表。
我喜歡做的是創建一個表格,根據他們在訪問時的居住日期獲取人員的地址(唯一 ID)。
我可以選擇具有我自己編造日期的記錄,但我想從“首次訪問”欄位中獲取它們。
帶有隨機日期的 SQL 查詢:
SELECT * FROM historical_adresses WHERE (startdate, enddate) OVERLAPS ('2013-05-15'::DATE, '2013-05-15'::DATE);
誰能幫我在 PostgresSQL 中做到這一點?
如果我正確理解您的問題,您必鬚
historical_adresses
根據唯一 ID 加入另一個表,並且訪問時間介於startdate
和之間enddate
。如果是這樣,查詢可能如下所示:
SELECT [address_elements] FROM historical_adresses AS ha JOIN visits AS v ON ha.user_id = v.user_id AND v.visit_time BETWEEN ha.startdate AND ha.enddate WHERE [find the visit somehow that you are interested in];
**注意:**您通常不需要表的所有列(絕對不需要來自連接),因此請使用實際的列名而不是
*
.