Sql 如何列出最近10天的日期记录?

Sql 如何列出最近10天的日期记录?,sql,postgresql,Sql,Postgresql,这在PostgreSQL上有效吗?是,这在PostgreSQL中有效(假设“日期”列的数据类型为date) 你为什么不试试呢 标准ANSI SQL格式为: SELECT Table.date FROM Table WHERE date > current_date - 10; 我更喜欢这种格式,因为它使事情更容易阅读(但它与当前日期-10相同)。我会检查数据类型 当前日期具有“日期”数据类型,10是一个数字,Table.date-您需要查看您的表。显示了可用于处理日期和时间(以及间隔)的

这在PostgreSQL上有效吗?

是,这在PostgreSQL中有效(假设“日期”列的数据类型为
date
) 你为什么不试试呢

标准ANSI SQL格式为:

SELECT Table.date FROM Table WHERE date > current_date - 10;

我更喜欢这种格式,因为它使事情更容易阅读(但它与当前日期-10相同)。

我会检查数据类型

当前日期具有“日期”数据类型,10是一个数字,Table.date-您需要查看您的表。

显示了可用于处理日期和时间(以及间隔)的运算符

所以你想要

SELECT Table.date 
FROM Table 
WHERE date > current_date - interval '10' day;
详细记录了上述操作员/功能:


根据我的测试(和)我的理解是,引用的方式需要与其他答案不同,还应该包括这样的“一天”:

SELECT "date"
FROM "Table"
WHERE "date" > (CURRENT_DATE - INTERVAL '10 days');
此处演示(您应该能够在任何Postgres db上运行此功能):

结果:

SELECT DISTINCT current_date, 
                current_date - interval '10' day, 
                current_date - interval '10 days' 
  FROM pg_language;

您也可以在以下两者之间使用:

2013-03-01  2013-03-01 00:00:00 2013-02-19 00:00:00

如果要使用任何给定日期而不是当前日期,只需泛化查询:

SELECT Table.date
  FROM Table 
  WHERE date between current_date and current_date - interval '10 day';

建议的答案似乎已经解决了这些问题。但作为补充,我建议使用PostgreSQL的NOW()函数

SELECT Table.date
  FROM Table 
  WHERE Table.date > '2020-01-01'::date - interval '10 day'
此外,你甚至可以指定时区,这非常方便

SELECT Table.date 
FROM Table 
WHERE date > now() - interval '10' day;

事实上,我没注意到布拉德利的答案是正确的。无论如何,我会把我的留在这里,作为正确方法的证明。接受的答案是错误的(至少对于我正在运行的Postgre版本),查询应该是:选择Table.date FROM Table WHERE date>current_date-interval“10天”@user2694306:
间隔“10天”
是Postgres语法
interval'10'day
是基于SQL标准的语法,Postgresinterval也支持该语法。实际上,从今天算起,10天可以给你11天的时间。@DavidHe:这和原来的答案是一样的。它使用的是
10
,而不是
9
,只是一个注释:在红移时,@user2694306的公式起作用:间隔“10天”。间隔“10”天对红移不起作用。间隔“10”天和当前“10”天之间的日期之间的
必须首先具有最低值,因此这将正确执行,因为
选择Table.date FROM Table,其中当前\u日期-间隔“10天”和当前\u日期之间的日期
SELECT Table.date 
FROM Table 
WHERE date > now() - interval '10' day;
NOW () AT TIME ZONE 'Europe/Paris'