SQL 服务器:按 Datetime2 时间戳的时间部分排序

SQL Server : order by time portion of Datetime2 timestamp

我有一个 table 的订单,其中有一个 datetime2(7)O_CreatedOn,我想只按 O_CreatedOn 列的时间部分来订购这个记录集。

这样做的原因是我需要生成一份报告,显示一天中最普遍的订单发生时间。

由于订单在 table 中的存储方式和订单量,我不想将时间戳列 O_CreatedOn 拆分为 O_CreatedOn_DateO_CreatedOn_Time列。

我尝试按转换后的记录集排序 O_CreatedOn,但它仍在按完整时间戳排序。

所以,这个:

ORDER BY CONVERT(datetime, O_CreatedOn, 108)

没用。

您可以转换为time:

ORDER BY CONVERT(time, O_CreatedOn)