SQL 服务器:按 Datetime2 时间戳的时间部分排序
SQL Server : order by time portion of Datetime2 timestamp
我有一个 table 的订单,其中有一个 datetime2(7)
列 O_CreatedOn
,我想只按 O_CreatedOn
列的时间部分来订购这个记录集。
这样做的原因是我需要生成一份报告,显示一天中最普遍的订单发生时间。
由于订单在 table 中的存储方式和订单量,我不想将时间戳列 O_CreatedOn
拆分为 O_CreatedOn_Date
和 O_CreatedOn_Time
列。
我尝试按转换后的记录集排序 O_CreatedOn
,但它仍在按完整时间戳排序。
所以,这个:
ORDER BY CONVERT(datetime, O_CreatedOn, 108)
没用。
您可以转换为time
:
ORDER BY CONVERT(time, O_CreatedOn)
我有一个 table 的订单,其中有一个 datetime2(7)
列 O_CreatedOn
,我想只按 O_CreatedOn
列的时间部分来订购这个记录集。
这样做的原因是我需要生成一份报告,显示一天中最普遍的订单发生时间。
由于订单在 table 中的存储方式和订单量,我不想将时间戳列 O_CreatedOn
拆分为 O_CreatedOn_Date
和 O_CreatedOn_Time
列。
我尝试按转换后的记录集排序 O_CreatedOn
,但它仍在按完整时间戳排序。
所以,这个:
ORDER BY CONVERT(datetime, O_CreatedOn, 108)
没用。
您可以转换为time
:
ORDER BY CONVERT(time, O_CreatedOn)