我想展示今天的产品并提出这样的要求:
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天内显示,但下个月我将不需要该产品。
我可以正确满足其他要求吗?
答案 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'