MSDN 声明两者都Month(date)
返回DatePart(month, date)
完全相同的值,但是这两种方法、性能或其他方面有什么区别吗?
我正在构建一些基于月份聚合大量数据的查询,有时它们需要一段时间才能运行,所以我想确保我使用的是最有效的语法。
我目前正在使用 SQL Server 2005
MSDN 声明两者都Month(date)
返回DatePart(month, date)
完全相同的值,但是这两种方法、性能或其他方面有什么区别吗?
我正在构建一些基于月份聚合大量数据的查询,有时它们需要一段时间才能运行,所以我想确保我使用的是最有效的语法。
我目前正在使用 SQL Server 2005
我刚刚在 SQL Server 2008r2 中对一个较大的表(12,430,129 行)进行了几次测试。
smalldatetime
结果:
MONTH()
- 在 6662、6583、6661 和 6560 毫秒内运行。平均运行时间6616.5msDATEPART()
- 在 6520、6584、6552 和 6608 毫秒内运行。平均运行时间6566 毫秒因此,
DATEPART()
似乎确实要快一些。然而,这是百分之七的差异,所以它可能并不重要。根据我的经验,这两个功能在性能上是相同的。但我建议在您的环境中进行两个快速测试: