0

我有这样的结果(按年、日、小时排序):

Year    DayOfYear   Hour
2012    266         13:00
2012    266         13:15
2012    266         13:30
2012    266         15:15
2012    266         15:30
2012    266         16:00

我需要按四分之一小时然后按小时检索行顺序,如下所示:

Year    DayOfYear   Hour
2012    266         13:00
2012    266         16:00
2012    266         13:15
2012    266         15:15
2012    266         13:30
2012    266         15:30
4

3 回答 3

3

基本上您可以按分钟订购,因为这将是 0、15、30 或 45。

ORDER BY Year, DayOfYear, DATEPART(MINUTE, Hour), Hour;
于 2012-09-20T17:29:45.967 回答
1

您可以DATEPART(mi, CONVERT(DATETIME, hour))在 SELECT 列表中使用并对此进行排序。

于 2012-09-20T17:31:39.143 回答
0

您可以使用以下方法转换为 15 分钟间隔:

datediff(minute, 0, Hour) / 15 % 4

或在查询中:

select  *
,       datediff(minute, 0, Hour) / 15 % 4 as Quarter
from    YourTable
order by
        datediff(minute, 0, Hour) / 15 % 4

这打印:

Year        DayOfYear   Hour             Quarter
----------- ----------- ---------------- -----------
2012        266         13:00:00         0
2012        266         16:00:00         0
2012        266         13:15:00         1
2012        266         15:15:00         1
2012        266         15:30:00         2
2012        266         13:30:00         2

(6 row(s) affected)
于 2012-09-20T17:39:19.350 回答