SELECT Table.date FROM Table WHERE date > current_date - 10;
Bu PostgreSQL üzerinde çalışıyor mu?
Yanıtlar:
Evet, bu PostgreSQL'de çalışıyor (" tarih " sütununun veri türünde olduğu varsayılarak date) Neden denemiyorsunuz?
Standart ANSI SQL biçimi şöyle olacaktır:
SELECT Table.date
FROM Table
WHERE date > current_date - interval '10' day;
Okumayı kolaylaştırdığı için bu biçimi tercih ederim (ama aynıdır current_date - 10).
interval '10 day'Postgres sözdizimidir. interval '10' daySQL standardına dayalı sözdizimidir ve ayrıca Postgres tarafından da desteklenir
10değil9
http://www.postgresql.org/docs/current/static/functions-datetime.html tarih ve saatlerle (ve aralıklarla) çalışmak için kullanabileceğiniz operatörleri gösterir.
Yani istiyorsun
SELECT "date"
FROM "Table"
WHERE "date" > (CURRENT_DATE - INTERVAL '10 days');
Yukarıdaki operatörler / işlevler ayrıntılı olarak belgelenmiştir:
Testlerimden (ve PostgreSQL dox'tan ) anladığım kadarıyla , alıntıların diğer cevaplardan farklı yapılması ve ayrıca şöyle bir "gün" içermesi gerekir:
SELECT Table.date
FROM Table
WHERE date > current_date - interval '10 day';
Burada gösterilmektedir (bunu herhangi bir Postgres db üzerinde çalıştırabilmeniz gerekir):
SELECT DISTINCT current_date,
current_date - interval '10' day,
current_date - interval '10 days'
FROM pg_language;
Sonuç:
2013-03-01 2013-03-01 00:00:00 2013-02-19 00:00:00
Veri türlerini kontrol ederdim.
current_date "tarih" veri türüne sahiptir, 10 bir sayıdır ve Table.date - tablonuza bakmanız gerekir.
aşağıdakiler arasında da kullanabilirsiniz:
SELECT Table.date
FROM Table
WHERE date between current_date and current_date - interval '10 day';
betweenBunu doğru olarak yapılabilir diye, ilk düşük değere sahip olmak zorunda SELECT Table.date FROM Table WHERE date between current_date - interval '10 day' and current_date;