SELECT Table.date FROM Table WHERE date > current_date - 10;
Run Code Online (Sandbox Code Playgroud)
这适用于PostgreSQL吗?
a_h*_*ame 155
是的,这在PostgreSQL中有效(假设列" date "是数据类型date
)为什么不试试呢?
标准ANSI SQL格式为:
SELECT Table.date
FROM Table
WHERE date > current_date - interval '10' day;
Run Code Online (Sandbox Code Playgroud)
我更喜欢这种格式,因为它使事情更容易阅读(但它是相同的current_date - 10
).
bra*_*ers 23
http://www.postgresql.org/docs/current/static/functions-datetime.html显示了可用于处理日期和时间(和间隔)的运算符.
所以你要
SELECT "date"
FROM "Table"
WHERE "date" > (CURRENT_DATE - INTERVAL '10 days');
Run Code Online (Sandbox Code Playgroud)
上面的操作符/函数详细记录:
建议的答案似乎已经解决了问题。但作为补充,我建议使用 PostgreSQL 的 NOW() 函数。
SELECT Table.date
FROM Table
WHERE date > now() - interval '10' day;
Run Code Online (Sandbox Code Playgroud)
此外,您甚至可以指定时区,这非常方便。
NOW () AT TIME ZONE 'Europe/Paris'
Run Code Online (Sandbox Code Playgroud)
从 Postgres 9.4 开始,您可以使用 AGE 函数:
SELECT Table.date FROM Table WHERE AGE(Table.date) <= INTERVAL '10 day';
根据我的测试(和PostgreSQL dox),我的理解是引号需要与其他答案不同,并且还应包括“ day”,如下所示:
SELECT Table.date
FROM Table
WHERE date > current_date - interval '10 day';
Run Code Online (Sandbox Code Playgroud)
这里展示(您应该可以在任何Postgres db上运行它):
SELECT DISTINCT current_date,
current_date - interval '10' day,
current_date - interval '10 days'
FROM pg_language;
Run Code Online (Sandbox Code Playgroud)
结果:
2013-03-01 2013-03-01 00:00:00 2013-02-19 00:00:00
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
80425 次 |
最近记录: |