从数据库获取从今天起两周的日期

时间:2019-12-26 11:05:50

标签: sql postgresql

我在postgresql数据库中有一些约会。我想查找从今天到下一个两周或14天的日期。我如何找到当前日期和未来14天之间的日期?该查询不起作用。 我数据库中的日期格式为2019-12-26。

"SELECT work_date FROM USERS_SCHEDULE WHERE user_id = 11 AND data(now() +14)";

2 个答案:

答案 0 :(得分:1)

SELECT work_date 
FROM users_schedule 
WHERE user_id = 11 
  AND work_date BETWEEN CURRENT_DATE
                    AND CURRENT_DATE + INTERVAL '14 days'

答案 1 :(得分:1)

只需在日期中增加天数,即可设置所需的限制日期。

样本数据

CREATE TABLE users_schedule (work_date DATE);
INSERT INTO users_schedule 
SELECT generate_series(CURRENT_DATE, DATE '2020-01-31', '1 day');

查询(当前日期至3天后的日期)

SELECT work_date FROM users_schedule 
WHERE work_date BETWEEN CURRENT_DATE AND CURRENT_DATE + 3;
 work_date  
------------
 2019-12-26
 2019-12-27
 2019-12-28
 2019-12-29
(4 rows)

如果您想获取某个时间间隔内的所有可能日期,请查看generate_series

SELECT generate_series(DATE '2016-08-01', DATE '2016-08-14', '1 day'); 

    generate_series     
------------------------
 2016-08-01 00:00:00+02
 2016-08-02 00:00:00+02
 2016-08-03 00:00:00+02
 2016-08-04 00:00:00+02
 2016-08-05 00:00:00+02
 2016-08-06 00:00:00+02
 2016-08-07 00:00:00+02
 2016-08-08 00:00:00+02
 2016-08-09 00:00:00+02
 2016-08-10 00:00:00+02
 2016-08-11 00:00:00+02
 2016-08-12 00:00:00+02
 2016-08-13 00:00:00+02
 2016-08-14 00:00:00+02
(14 rows)

使用CURRENT_DATE

SELECT generate_series(CURRENT_DATE, DATE '2019-12-31', '1 day'); 
    generate_series     
------------------------
 2019-12-26 00:00:00+01
 2019-12-27 00:00:00+01
 2019-12-28 00:00:00+01
 2019-12-29 00:00:00+01
 2019-12-30 00:00:00+01
 2019-12-31 00:00:00+01
(6 rows)
相关问题