在我一直使用过去:最优化的方式来获得所有记录比上月
WHERE DATEDIFF(m, [DATE_COL], GETDATE()) = 1
它得到我的一切,发生在上月的纪录。例如,如果我运行了这个查询,它会得到我在1月份发生的所有记录。
但是,我目前正在使用一个更大的表,如果我使用上述查询,它需要将近30分钟才能加载。但是,如果我使用类似
WHERE [SettlementDate] >= DateAdd(DAY, -31, GETDATE())
它通常会在10秒内运行。
我的问题是:
如何在不增加处理时间的情况下获得与WHERE DATEDIFF(m, [DATE_COL], GETDATE()) = 1
相同的结果?
谢谢!
尝试与期望的月比较'DATEPART(M,[date_col的])'。 –
这个'DateAdd(DAY,-31,GETDATE())'也可能评估为错误的数据。就像'GETDATE()'是例如3月1日一样。 –