如何根据月份和年份(忽略日期)获取记录 - SQL Server

时间:2016-03-26 11:55:57

标签: sql sql-server-2008

我想写一个查询,我可以检查付款是否在证书日期之前完成。

E.g我有两列日期。

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

在这种情况下,由于证书日期超过最后一次付款,因此未完成付款。那么如何检查此条件并且我想要此记录。

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

在这种情况下付款已完成,因此不应出现在我的查询结果中。

我可以使用的是datePart = Month + Year,但后来我发现难以获得<或者>查询该记录。

查询:我希望获得截至2016年3月之前未完成付款的所有记录。如果生成证书,则应在该证书日期之前付款。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

如果您只想比较年份和月份部分,可以使用日期部分功能。有一个简单的方法:

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

但是,我认为使用日期算法更容易:

where LastPaymentDate < '2016-04-01'

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