我想写一个查询,我可以检查付款是否在证书日期之前完成。
E.g我有两列日期。
CertificateDate : 2016-03-26
LastPaymentDate : 2015-08-06
在这种情况下,由于证书日期超过最后一次付款,因此未完成付款。那么如何检查此条件并且我想要此记录。
CertificateDate : 2016-03-26
LastPaymentDate : 2016-04-15
在这种情况下付款已完成,因此不应出现在我的查询结果中。
我可以使用的是datePart = Month + Year,但后来我发现难以获得<或者>查询该记录。
查询:我希望获得截至2016年3月之前未完成付款的所有记录。如果生成证书,则应在该证书日期之前付款。
任何帮助表示感谢。
答案 0 :(得分:0)
如果您只想比较年份和月份部分,可以使用日期部分功能。有一个简单的方法:
where year(LastPaymentDate) * 100 + month(LastPaymentDate) <= 201603
但是,我认为使用日期算法更容易:
where LastPaymentDate < '2016-04-01'
或
where LastPaymentDate < dateadd(day, 1, '2016-03-31')