表t1,字段f1是nvarchar类型。
记录值为:
f1的值如下:
2007年8月7日
2007年8月27日
2007年6月9日
2007年6月29日如何使其真正按照日期的顺序排序,希望得到的结果如下:2007年8月27日
2007年8月7日
2007年6月29日
2007年6月9日sql语句怎么写才能搞定?
记录值为:
f1的值如下:
2007年8月7日
2007年8月27日
2007年6月9日
2007年6月29日如何使其真正按照日期的顺序排序,希望得到的结果如下:2007年8月27日
2007年8月7日
2007年6月29日
2007年6月9日sql语句怎么写才能搞定?
insert tb
select '2007年8月7日'
union select '2007年8月27日'
union select '2007年6月9日'
union select '2007年6月29日'
select *
from tb
order by convert(datetime,replace(replace(replace(f1,'年','-'),'月','-'),'日',''))drop table tb
insert into @t1 select '2007年8月7日'
insert into @t1 select '2007年8月27日'
insert into @t1 select '2007年6月9日'
insert into @t1 select '2007年6月29日'select * from @t1 order by cast(replace(replace(left(f1,len(f1)-1),'年','-'),'月','-') as datetime) desc/*
f1
--------------------
2007年8月27日
2007年8月7日
2007年6月29日
2007年6月9日
*/
order by (replace(replace(f1,'年','-'),'月','-'),'日','')
order by cast(replace(replace(left(f1,len(f1)-1),'年','-'),'月','-') as datetime) desc
(f1 varchar(100))
insert into #tselect '2007年8月7日' union all
select '2007年8月27日' union all
select '2007年6月9日' union all
select '2007年6月29日'select f1 from #t order by cast( replace(replace(replace(f1,'年','-'),'月','-'),'日','') as datetime) descf1
2007年8月27日
2007年8月7日
2007年6月29日
2007年6月9日(4 row(s) affected)
order by cast(replace(replace(replace(f1,'年','-'),'月','-'),'日','-') as datetime) desc