SELECT Table.date FROM Table WHERE date > current_date - 10;
Apakah ini berfungsi di PostgreSQL?
Jawaban:
Ya, ini berfungsi di PostgreSQL (dengan asumsi kolom " tanggal " adalah jenis data date) Mengapa Anda tidak mencobanya?
Format ANSI SQL standar adalah:
SELECT Table.date
FROM Table
WHERE date > current_date - interval '10' day;
Saya lebih suka format itu karena membuatnya lebih mudah dibaca (tetapi sama seperti current_date - 10).
interval '10 day'adalah sintaks Postgres. interval '10' dayadalah sintaks berdasarkan standar SQL dan juga didukung oleh Postgres
10, bukan9
http://www.postgresql.org/docs/current/static/functions-datetime.html menunjukkan operator yang dapat Anda gunakan untuk bekerja dengan tanggal dan waktu (dan interval).
Jadi kamu mau
SELECT "date"
FROM "Table"
WHERE "date" > (CURRENT_DATE - INTERVAL '10 days');
Operator / fungsi di atas didokumentasikan secara rinci:
Pemahaman saya dari pengujian saya (dan dox PostgreSQL ) adalah bahwa tanda kutip perlu dilakukan secara berbeda dari jawaban lain, dan juga harus menyertakan "hari" seperti ini:
SELECT Table.date
FROM Table
WHERE date > current_date - interval '10 day';
Didemonstrasikan di sini (Anda seharusnya dapat menjalankan ini di Postgres db mana pun):
SELECT DISTINCT current_date,
current_date - interval '10' day,
current_date - interval '10 days'
FROM pg_language;
Hasil:
2013-03-01 2013-03-01 00:00:00 2013-02-19 00:00:00
Saya akan memeriksa tipe data.
current_date memiliki tipe data "date", 10 adalah angka, dan Table.date - Anda perlu melihat tabel Anda.
Anda juga dapat menggunakan antara:
SELECT Table.date
FROM Table
WHERE date between current_date and current_date - interval '10 day';
betweenharus dengan nilai terendah pertama, jadi ini akan dilakukan dengan benar sebagai SELECT Table.date FROM Table WHERE date between current_date - interval '10 day' and current_date;