2012-06-06 59 views
0

时机使用SQL Server 2000如何轮最接近的值

例如

表1

time 

01:02 
00:02 
02:37 
02:58 
.... 

时间格式为HH:MM

我要舍与最接近的值的时机。像

01 to 04 means 00 only, 05 to 09 means 05 only, 10 to 14 means 10 only..... 55 to 59 means 55 only, 01:00 to 01:04 means 01:00 only.... 

期望输出

表1

time 

01:00 
00:00 
02:35 
02:55 
.... 

如何使上述条件的查询。

需要查询帮助

回答

4
select substring([time], 1, 3) + 
     right(rtrim(('0' + cast(substring([time], 4, 2)/5 * 5 as CHAR))), 2) 
from table1 
+0

谢谢大家正在但当时间02:05意味着它除了显示该02:50所有的时间都行,为什么它是未来像这样... – JetJack

+0

查看我的更新。现在它应该工作:) –

1
SELECT 
    CONVERT(
    char(5), 
    DATEADD(MINUTE, DATEDIFF(MINUTE, 0, time)/5 * 5, 0), 
    108 
) AS time 
FROM Table1