我希望'2017/8/22 1:33:53'在'2017-08-13 23:12:33.411'之后出现,因为/在-之后。这是因为Chinese_PRC_CI_AS排序规则中的特殊排序吗?
是的,是因为Chinese_PRC_CI_AS
整理
如果是这样,我在哪里可以找到规格?
规则足够复杂,但是您可以在这里找到它们:UNICODE COLLECTION ALGORITHM
在您的情况下,您可以尝试使用binary
归类Chinese_PRC_BIN2
,它将在这种情况下为您提供理想的结果,但是对于字母排序可能是不可接受的,我的意思是在欧洲语言中,二进制排序始终将大写字母放在所有小写字母之前大小写字母,但我不知道应该如何对中文符号进行排序
以下是用于按订单对日期进行排序的代码(您说过使用UNICODE列):
declare @t table (s nvarchar(100))
insert into @t values (N'2017/8/22 1:33:53'), (N'2017-08-13 23:12:33.411')
select *
from @t
order by s collate Chinese_PRC_BIN2;
Bin2排序规则也将在“非unicode大小写”情况下作为图片中的示例工作:
select case
when '2017/8/22 1:33:53' collate Chinese_PRC_BIN2 <
'2017-08-13 23:12:33.411' collate Chinese_PRC_BIN2
then 'TRUE'
else 'FALSE'
end;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句