如何仅将SQL视图过滤到本月

时间:2018-09-18 09:19:10

标签: sql filter

嗨,我是新来的,所以请对我好一点,我已经创建了一个SQL视图,并且需要先在sql中过滤此视图,然后再将数据加载到excel中,我只想将数据过滤到本月。

SQL是

SELECT DocumentNo, DocumentDate, TotalNetValue, TotalTaxValue, TotalGrossValue
FROM dbo.SOPOrderReturn

然后返回此

Table

3 个答案:

答案 0 :(得分:1)

我强烈建议您使用可以使用索引的版本:

SELECT DocumentNo, DocumentDate, TotalNetValue, TotalTaxValue, TotalGrossValue
FROM dbo.SOPOrderReturn
WHERE DocumentDate >= DATEADD(DAY, 1, EOMONTH(GETDATE(), -1)) AND
      DocumentDate < DATEADD(DAY, 1, EOMONTH(GETDATE());

由于没有对DocumentDate应用任何函数,因此优化程序将能够使用索引。

请注意,EOMONTH()自SQL Server 2012起可用。早期版本中有等效的方法。

答案 1 :(得分:0)

您可以使用月份功能获取月份号并进行过滤。

SELECT DocumentNo, DocumentDate, TotalNetValue, TotalTaxValue, TotalGrossValue
FROM dbo.SOPOrderReturn where month(DocumentDate)=9 and Year(DocumentDate)=2018

答案 2 :(得分:0)

您需要将文档的月/年与当前月/年进行比较。

SELECT DocumentNo, DocumentDate, TotalNetValue, TotalTaxValue, TotalGrossValue
FROM dbo.SOPOrderReturn
WHERE MONTH(DocumentDate) = MONTH(getdate())
AND YEAR(DocumentDate) = YEAR(getdate())