通過仔細使用dateadd和datediff,可以完成此操作。我的解決方案縮短了時間。
第一塊計算行的日期和時元(0)之間的分鐘數並執行在其上的模15,使該行的日期和最近的15分鐘的時間間隔之間的差:
select -1 * datediff(minute, 0, mydate) % 15
from mytable
接下來,我們需要處理的只是幾分鐘,所以我們用這個日期部分剝離技術,我從SQL Server雜誌二月(按日期時間計算伊茨克奔甘)2007年的經驗教訓:
select dateadd(minute, datediff(minute, 0, mydate), 0)
from mytable
然後,我們添加與行的日期列和組的差別並計數a nd瞧!
select dateadd(minute, -1 * datediff(minute, 0, mydate) % 15, dateadd(minute, datediff(minute, 0, mydate), 0)), count(ID)
from mytable
group by dateadd(minute, -1 * datediff(minute, 0, mydate) % 15, dateadd(minute, datediff(minute, 0, mydate), 0))