Respostas:
Sim, isso funciona no PostgreSQL (assumindo que a coluna " data " seja do tipo de dados date
). Por que você simplesmente não tenta?
O formato ANSI SQL padrão seria:
SELECT Table.date
FROM Table
WHERE date > current_date - interval '10' day;
Eu prefiro esse formato porque torna as coisas mais fáceis de ler (mas é o mesmo que current_date - 10
).
interval '10 day'
é a sintaxe do Postgres. interval '10' day
é a sintaxe baseada no padrão SQL e também suportada pelo Postgres
10
, não9
http://www.postgresql.org/docs/current/static/functions-datetime.html mostra os operadores que você pode usar para trabalhar com datas e horas (e intervalos).
Então você quer
SELECT "date"
FROM "Table"
WHERE "date" > (CURRENT_DATE - INTERVAL '10 days');
Os operadores / funções acima são documentados em detalhes:
Meu entendimento de meus testes (e do PostgreSQL dox ) é que as cotações precisam ser feitas de forma diferente das outras respostas e também devem incluir "dia" como este:
SELECT Table.date
FROM Table
WHERE date > current_date - interval '10 day';
Demonstrado aqui (você deve ser capaz de executar isso em qualquer banco de dados Postgres):
SELECT DISTINCT current_date,
current_date - interval '10' day,
current_date - interval '10 days'
FROM pg_language;
Resultado:
2013-03-01 2013-03-01 00:00:00 2013-02-19 00:00:00
Gostaria de verificar os tipos de dados.
current_date tem o tipo de dados "data", 10 é um número e Table.date - você precisa olhar sua tabela.
você também pode usar entre:
SELECT Table.date
FROM Table
WHERE date between current_date and current_date - interval '10 day';
between
tem que estar com o valor mais baixo primeiro, então isso seria feito corretamente como SELECT Table.date FROM Table WHERE date between current_date - interval '10 day' and current_date;