2010-11-18 9 views
1

Sadece DATETIME değerlerine ayrılmış bir sütun içeren bir tablom var (ör. "2010-11-12 12:34:56"). Tablodaki tüm satırların ay ayın geçerli aydan sonraki ay, olduğunu ve aynı zamanda yıl değişikliklerini de hesaba katmaya çalıştığımı anlamaya çalışıyorum. , Ocak 2011 tarihli tüm değerleri seçmek istiyorum).Bir sonraki aya tarihlenen değerleri almak için MySQL sorgusu nasıl oluşturulur?

Nasıl yapılacağını anladığım için zor bir zamanım var. Bu, geçerli ayın geri kalanı için tüm değerleri seçmek için benim şimdiki sorgu: Ben http://dev.mysql.com/doc/refman/5.0/en/date-calculations.html (CURDATE ve MOD) de kılavuzunu kullanarak çalıştım, ama o iş için alamadım

$query = "SELECT * FROM mytable WHERE uid = " . $_SESSION['uid'] . " AND EXTRACT(YEAR FROM NOW()) = EXTRACT(YEAR FROM date_time) AND EXTRACT(MONTH FROM NOW()) = EXTRACT(MONTH FROM date_time) AND EXTRACT(DAY FROM NOW()) < EXTRACT(DAY FROM date_time) ORDER BY date_time"; 

. :(

Herhangi bir yardım çok takdir

+0

bkz http://stackoverflow.com/ sorular/3009896/ilk-ve-son-tarih-in-the-son-ay-içinde-mysql –

cevap

2
... WHERE YEAR(date_time) = YEAR(DATE_ADD(NOW(), INTERVAL 1 MONTH)) 
AND MONTH(date_time) = MONTH(DATE_ADD(NOW(), INTERVAL 1 MONTH)) 

o datetime sahada mevcut dizinleri yararlanabilirler çünkü bu bir hızlı olacaktır:!

... WHERE date_time BETWEEN 
    DATE_SUB(DATE_ADD(NOW(), INTERVAL 1 MONTH),INTERVAL (DAY(NOW())-1) DAY) 
    AND 
    DATE_SUB(DATE_ADD(NOW(), INTERVAL 2 MONTH),INTERVAL (DAY(NOW())) DAY) 
+0

Hm, sonunda bağlantılı soru – thomaspaulb

+0

cevabına oldukça benzer Çok teşekkürler, öneri deneyecek! – BeeDog

İlgili konular