TSQL检索当月的所有记录/年(TSQL retrieve all records in curre

2019-07-04 14:20发布

我有一个名为DateFinished时间字段。 我需要能够检索的所有记录,其中DateFinished是当前月/年以内。

Answer 1:

如果你只得到了一小行,这会做让所有行DateFinished是在本月今年。

SELECT * 
FROM MyTable
WHERE Year(DateFinished) = Year(CURRENT_TIMESTAMP) 
                 AND Month(DateFinished) = Month(CURRENT_TIMESTAMP)

这有可能会在大量的行相当缓慢,但-在使用这种情况下DateAddDatePartBETWEEN可能是比较合适的,并且可以利用索引(我没有时间来写,现在涉及这些权利的答案!)



Answer 2:

正如一个选择 - 这应该使用在DateFinished的索引。

SELECT * 
FROM MyTable
WHERE DateFinished BETWEEN 
     DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
     AND 
     DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) + 1, 0)


文章来源: TSQL retrieve all records in current month/year