我现在有一个排序字段 格式是200501020101111
是 年月日分秒毫秒来的 还是nvarchar字段 总共15位 太长了 而且索引速度不理想 我现在想把他变成一个6位数的数值 但不能相同 本来我设计的算法是 年*10+月*10+日*10 等等 但算下来不对有重复值 所以希望大家帮我想个算法 而且这算下来的数值要按照时间来排序的
是 年月日分秒毫秒来的 还是nvarchar字段 总共15位 太长了 而且索引速度不理想 我现在想把他变成一个6位数的数值 但不能相同 本来我设计的算法是 年*10+月*10+日*10 等等 但算下来不对有重复值 所以希望大家帮我想个算法 而且这算下来的数值要按照时间来排序的
select cast(convert(varchar(10),getdate(),112) as int)
select cast(convert(varchar(10),getdate(),112) as int)
---------------
我要精确到秒 而且要6位 因为表里记录 差不多10万条记录
至于时、分、秒、毫秒,保存起来2个字节肯定不够。
最简单 select identity(int,1,1) a,你的字段 into 表1 from 你的表 order by 你的字段
即可生成一对应你字段的表