Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于月份和年份(忽略日期)获取记录-SQL Server_Sql_Sql Server 2008 - Fatal编程技术网

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

如何基于月份和年份(忽略日期)获取记录-SQL Server,sql,sql-server-2008,Sql,Sql Server 2008,我想写一个查询,我可以检查付款是否完成,直到证书日期 我有两列写有日期的 CertificateDate : 2016-03-26 LastPaymentDate : 2015-08-06 在这种情况下,由于证书日期超过最后一次付款,因此未完成付款。因此,我如何检查此条件,我需要此记录 CertificateDate : 2016-03-26 LastPaymentDate : 2016-04-15 在这种情况下,付款已完成,因此这不应出现在我的查询结果中 我可以使用datePart=Mon

我想写一个查询,我可以检查付款是否完成,直到证书日期

我有两列写有日期的

CertificateDate : 2016-03-26
LastPaymentDate : 2015-08-06
在这种情况下,由于证书日期超过最后一次付款,因此未完成付款。因此,我如何检查此条件,我需要此记录

CertificateDate : 2016-03-26
LastPaymentDate : 2016-04-15
在这种情况下,付款已完成,因此这不应出现在我的查询结果中

我可以使用datePart=Month+Year,但是我发现很难将查询转到该记录

查询:我想获得所有那些直到2016年3月才付款的记录。如果生成证书,则付款应一直到证书日期


非常感谢您的帮助。

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

where year(LastPaymentDate) * 100 + month(LastPaymentDate) <= 201603
其中年份(LastPaymentDate)*100+个月(LastPaymentDate)
where LastPaymentDate < '2016-04-01'
where LastPaymentDate <  dateadd(day, 1, '2016-03-31')