显示今天,明天,星期和月份的产品

时间:2019-04-05 06:05:49

标签: sql postgresql

我想展示今天的产品并提出这样的要求:

SELECT P.* FROM PRODUCTS AS P WHERE P.END_DATE>=NOW() AND P.STARTING_DATE <= NOW()::DATE

明天我会带什么产品,我做什么+ 1

SELECT P.* FROM PRODUCTS AS P WHERE P.END_DATE>=NOW() AND P.STARTING_DATE <= NOW()::DATE + 1 

一周+ 7

SELECT P.* FROM PRODUCTS AS P WHERE P.END_DATE>=NOW() AND P.STARTING_DATE <= NOW()::DATE + 7

但是如何在当月取款?

如果我输入+ 30,它将在3天内显示,但下个月我将不需要该产品。

我可以正确满足其他要求吗?

2 个答案:

答案 0 :(得分:1)

您可以使用INTERVAL

为了明天;

SELECT P.* FROM PRODUCTS AS P WHERE P.END_DATE>=NOW() AND P.STARTING_DATE <= NOW()::DATE  + INTERVAL 1 DAY

1周;

SELECT P.* FROM PRODUCTS AS P WHERE P.END_DATE>=NOW() AND P.STARTING_DATE <= NOW()::DATE  + INTERVAL 7 DAY

答案 1 :(得分:1)

怎么样?

SELECT P.*
FROM PRODUCTS P
WHERE P.END_DATE >= DATE_TRUNC('MON', CURRENT_DATE) AND 
      P.STARTING_DATE < DATE_TRUNC('MON', CURRENT_DATE) + INTERVAL '1 MONTH'