SELECT Table.date FROM Table WHERE date > current_date - 10;
Funziona su PostgreSQL?
Risposte:
Sì, funziona in PostgreSQL (supponendo che la colonna " data " sia di tipo di dati date
) Perché non lo provi?
Il formato standard ANSI SQL sarebbe:
SELECT Table.date
FROM Table
WHERE date > current_date - interval '10' day;
Preferisco quel formato in quanto rende le cose più facili da leggere (ma è lo stesso di current_date - 10
).
interval '10 day'
è la sintassi di Postgres. interval '10' day
è la sintassi basata sullo standard SQL e supportata anche da Postgres
10
, non9
http://www.postgresql.org/docs/current/static/functions-datetime.html mostra gli operatori che puoi utilizzare per lavorare con date e orari (e intervalli).
Quindi tu vuoi
SELECT "date"
FROM "Table"
WHERE "date" > (CURRENT_DATE - INTERVAL '10 days');
Gli operatori / funzioni di cui sopra sono documentati in dettaglio:
La mia comprensione dal mio test (e dalla dox di PostgreSQL ) è che le virgolette devono essere fatte in modo diverso dalle altre risposte e dovrebbero includere anche "giorno" come questo:
SELECT Table.date
FROM Table
WHERE date > current_date - interval '10 day';
Dimostrato qui (dovresti essere in grado di eseguirlo su qualsiasi db Postgres):
SELECT DISTINCT current_date,
current_date - interval '10' day,
current_date - interval '10 days'
FROM pg_language;
Risultato:
2013-03-01 2013-03-01 00:00:00 2013-02-19 00:00:00
Vorrei controllare i tipi di dati.
current_date ha il tipo di dati "date", 10 è un numero e Table.date - devi guardare la tua tabella.
puoi usare anche tra:
SELECT Table.date
FROM Table
WHERE date between current_date and current_date - interval '10 day';
between
deve essere con il valore più basso prima, quindi questo sarebbe stato fatto correttamente come SELECT Table.date FROM Table WHERE date between current_date - interval '10 day' and current_date;