2016-03-26 8 views
0

Bir sorgu yazmak istiyorum Ödemenin sertifika tarihine kadar yapılıp yapılmadığını kontrol edebilirim.Ay ve Yıla göre kayıtlar nasıl alınır (Yoksay gün) - SQL Server

E.g Tarihli iki sütunum var. ben bu durumunu kontrol ve ben bu kaydı istiyorum nasıl ödeme belgesi tarihi olarak yapılmazsa Bu durumda

CertificateDate : 2016-03-26 
LastPaymentDate : 2015-08-06 

geçen payment.So daha fazladır.

CertificateDate : 2016-03-26 
LastPaymentDate : 2016-04-15 

Bu durumda ödeme yapılır, bu benim sorgu sonuçlarında olmamalıdır.

Kullanabileceğim tek bir şey datePart = Month + Year olabilir ama < almakta zorluk çekiyorum ya da bu kaydın üzerine sorguladım.

Sorgu: Ödemenin tamamı Mart 2016'ya kadar yapılmayan tüm kayıtları almak istiyorum. Sertifika üretilirse ödeme, sertifika tarihine kadar olmalıdır.

Herhangi bir yardım için teşekkür ederiz.

cevap

0

Sadece yıl ve ay bölümlerini karşılaştırmak isterseniz, tarih bölümü işlevlerini kullanabilirsiniz. basit bir yöntem vardır:

where LastPaymentDate < '2016-04-01' 

veya

where LastPaymentDate < dateadd(day, 1, '2016-03-31') 
: Ancak

where year(LastPaymentDate) * 100 + month(LastPaymentDate) <= 201603 

, ben sadece tarih hesaplamaları kullanımı daha da kolay olduğunu düşünüyorum