比方说,我正在加入一个数字表,在子查询中的两个日期之间执行某些操作,如下所示:
select n,(select avg(col1) from table1 where timestamp between dateadd(minute,15*n,@ArbitraryDate) and dateadd(minute,15*(n+1),@ArbitraryDate)) from numbers where n < 1200
解决方法
使用DATEADD以日期时间格式保存数据最有可能更快
检查这个问题:Most efficient way in SQL Server to get date from date+time?
接受的答案(不是我!)演示了DATEADD对字符串的转换.太多年前我见过另一个显示相同的东西