2016-03-31 16 views
-1

Bu nedenle son kullanma tarihinden bir hafta sonrasına kadar çıkacak öğeler almam gereken bir sorgu oluşturuyorum (son kullanma tarihi, yaratılışından bir aydır. date)Tarihin bir haftaya, son kullanma tarihine kadar olan tarihi seçin

Gerçekten mysql'in tarih ve saat işlevlerini bilmiyorum, bu yüzden sözdizimlerinden çok emin değilim.

DÜZENLEME: Öncesinde çok takdir edilen örnek, feb 20'de bir öğenin oluşturulması, son kullanma tarihi 20 Mart. Ve bugün 13 Mart olduğunu söyleyeyim, benim sorgulama son kullanma tarihi gelecek hafta öğeleri almak gerekiyor. Bu ben

SELECT * FROM ITEMS WHERE NOW() <= DATE_ADD(orders_items.cre_date, INTERVAL 1 MONTH) - 7 days? 
+0

Sorunuz kafa karıştırıcı ve kod ve verilerden yok. Bir tarihte, son kullanma tarihinin yaratılış tarihinden itibaren bir ay olduğunu ve son kullanma tarihine sahip olanlar için yaratma tarihinden itibaren bir hafta aradığınızı söylersiniz. Son tarih, oluşturma tarihine göre tanımlanmışsa, oluşturma tarihinden itibaren bir hafta olmamalıdır. – rsjaffe

+0

Kriterleriniz yazılı olduğu kadar mantıklı değil. Son kullanma tarihi, oluşturma tarihinden itibaren bir ay ise *, oluşturma tarihi, son kullanma tarihinden bir hafta öncesine eşit olan * öğeleri nasıl edinmeniz gerekir? Sadece son kullanma tarihinin ** yaratılıştan bir ay ** olduğunu söylediniz, bu yüzden nasıl ** bir hafta ara ** olabilirler? –

+1

Üzgünüm çocuklar sadece sorumu tekrar okudum, açıkça düşünmüyordu. Düzenlemeleri yaptım – user3784256

cevap

2

Eğer çevresinde başka bir yol yapabilir gibi görünebilir neyi düşünüyorum şeydir (daha az karmaşık)

21 gün -veya daha fazla- önce oluşturulan ve öğeleri, olsun Neden 21'i açıklamak için
SELECT * FROM orders_items WHERE datediff(NOW() , orders_items.cre_date) >= 21 

Son kullanma tarihine 7 gün kala, yaratılış tarihinden itibaren 3 hafta geçti.

datediff

İlgili konular