如何列出过去10天的日期记录?

时间:2011-03-28 21:49:55

标签: sql postgresql

7 个答案:

答案 0 :(得分:143)

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

标准ANSI SQL格式为:

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

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

答案 1 :(得分:21)

答案 2 :(得分:5)

我对我的测试(以及PostgreSQL dox)的理解是,引号需要与其他答案不同,并且还应包括" day"像这样:

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

在这里展示(你应该可以在任何Postgres数据库上运行它):

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

答案 3 :(得分:0)

我会检查数据类型。

current_date有“date”数据类型,10是数字,Table.date - 你需要查看你的表。

答案 4 :(得分:0)

你也可以在之间使用:

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

答案 5 :(得分:0)

如果要使用任何给定日期而不是当前日期,只需对查询进行概括即可:

SELECT Table.date
  FROM Table 
  WHERE Table.date > '2020-01-01'::date - interval '10 day'

答案 6 :(得分:0)

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

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

此外,您甚至可以指定时区,这非常方便。

NOW () AT TIME ZONE 'Europe/Paris'