首页 > 解决方案 > Postgres减去日期间隔

问题描述

我是 SQL 新手,但有一个(可能很明显)问题。我的目标是显示最后一个日期条目前一个月的所有数据。执行下面的代码块查找一个月前的日期时,

SELECT MAX(created_at) - INTERVAL '1 MONTH' AS date
FROM shopify_view

它返回,'2019-11-27 11:40:06'。说得通!

但是,当我尝试获取日期高于该值的所有日期时:

SELECT created_at AS date
FROM shopify_view
GROUP BY created_at
HAVING created_at >= MAX(created_at) - INTERVAL '1 MONTH'
ORDER BY created_at

它将第一个日期返回为“2018-04-23 10:57:28”。没有意义!

我错过了什么?谢谢!!

标签: sqlpostgresql

解决方案


您应该使用子查询

SELECT *
FROM shopify_view
Where created_at >= (SELECT MAX(created_at) - INTERVAL '1 MONTH' AS date
FROM shopify_view)
ORDER BY created_at

推荐阅读