gotchasqlMinor
Is there any significant difference between Month(date) and DatePart(month, date)?
Viewed 0 times
anydatedifferencebetweenmonthdatepartandtheresignificant
Problem
MSDN states that both
I'm building some queries that aggregate large sets of data based on month, and sometimes they take a while to run so I'd like to be sure I'm using the most efficient syntax possible.
I'm currently using SQL Server 2005
Month(date) and DatePart(month, date) return the exact same value, however is there any difference between the two methods, performance or otherwise?I'm building some queries that aggregate large sets of data based on month, and sometimes they take a while to run so I'd like to be sure I'm using the most efficient syntax possible.
I'm currently using SQL Server 2005
Solution
I just ran several tests on a largish table (12,430,129 rows) in SQL Server 2008r2.
Results:
So,
- The field is
smalldatetime
- The field is NOT indexed
- I changed the processing order after each run to eliminate page caching issues
Results:
MONTH() - Ran in 6662, 6583, 6661 and 6560 ms. Average runtime 6616.5msDATEPART() - Ran in 6520, 6584, 6552, and 6608 ms. Average runtime 6566msSo,
DATEPART() does seem to be marginally faster. However, this is 7 tenths of a percent difference, so it probably won't matter a whole lot.Context
StackExchange Database Administrators Q#17956, answer score: 7
Revisions (0)
No revisions yet.