Postgresql

如何根據 PostgresSQL 中欄位中的日期選擇兩個日期之間的記錄?

  • November 16, 2015

我有兩張桌子:

  • 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];

**注意:**您通常不需要表的所有列(絕對不需要來自連接),因此請使用實際的列名而不是*.

引用自:https://dba.stackexchange.com/questions/120989