3
我需要一些幫助與SQL(特別是:SQLite)相關的問題。我有一個表「假期」SQLite:獲取日期之間的所有日期
CREATE TABLE vacation(
name TEXT,
to_date TEXT,
from_date TEXT
);
在那裏我存儲日期(YYYY-MM-DD),當有人離開度假,然後再返回來。現在,我想獲得所有日期的明確列表,哪裏有人正在度假。假設我的表如下所示:
+------------+-------------+------------+
| name | to_date | from_date |
+------------+-------------+------------+
| Peter | 2013-07-01 | 2013-07-10 |
| Paul | 2013-06-30 | 2013-07-05 |
| Simon | 2013-05-10 | 2013-05-15 |
+------------+-------------+------------+
從查詢結果應該是這樣的:
+------------------------------+
| dates_people_are_on_vacation |
+------------------------------+
| 2013-05-10 |
| 2013-05-11 |
| 2013-05-13 |
| 2013-05-14 |
| 2013-05-15 |
| 2013-06-30 |
| 2013-07-01 |
| 2013-07-02 |
| 2013-07-03 |
| 2013-07-04 |
| 2013-07-05 |
| 2013-07-06 |
| 2013-07-07 |
| 2013-07-08 |
| 2013-07-09 |
| 2013-07-10 |
+------------------------------+
我想過使用日期 - 表 'all_dates'
CREATE TABLES all_dates(
date_entry TEXT
);
覆蓋20年的時間跨度(2010-01-01至2030-01-01)以及以下查詢:
SELECT date_entry FROM all_dates WHERE date_entry BETWEEN (SELECT from_date FROM vacation) AND (SELECT to_date FROM vacation);
但是,如果我在上面的數據集應用此查詢,我只得到我想要的結果的一部分:
+------------------------------+
| dates_people_are_on_vacation |
+------------------------------+
| 2013-07-01 |
| 2013-07-02 |
| 2013-07-03 |
| 2013-07-04 |
| 2013-07-05 |
| 2013-07-06 |
| 2013-07-07 |
| 2013-07-08 |
| 2013-07-09 |
| 2013-07-10 |
+------------------------------+
它可以使用SQLite做什麼?或者更好,如果我只是返回'to_date'和'from_date'列並填充我的Python應用程序中這些日期之間的差距?
任何幫助表示讚賞!
的作品就像一個魅力,非常感謝! – user2494129