当前位置: 代码迷 >> ASP.NET >> 按时间降序排列的有关问题
  详细解决方案

按时间降序排列的有关问题

热度:8205   发布时间:2013-02-26 00:00:00.0
按时间降序排列的问题?
我在数据库(SQL2000)里面定义的时间是VarChar(30)存储的是   如:2007-0-10等等日期

请问我使用这条语句:
select   top   8   *   from   zy_Newsdetails   where   newsType_id=@TypeDetailsID   order   by   newsdetails_time   desc

可以实现按照时间降序排序吗?   是不是一定要在数据库里面把时间定义为DATE才能排序吗??

为什么我的排序不是降序的   我排序newsType_id的时间就可以升序   降序都可以的啊?

------解决方案--------------------------------------------------------
如果你的字段是 "yyyy-MM-dd "格式的,可以排序;
如果是 "yyyy-M-d "格式,就没办法了

另外字符串排序非常耗资源,效率很低
------解决方案--------------------------------------------------------
vachar是用的字符顺序排序
转换为你的datatime吧
------解决方案--------------------------------------------------------
cast(xx,datatime)
然后排序
------解决方案--------------------------------------------------------
select top 8 * from zy_Newsdetails where newsType_id=@TypeDetailsID order by cast(newsdetails_time as datetime) desc
------解决方案--------------------------------------------------------
select cast( '2007-4-5 ' as datetime)
------解决方案--------------------------------------------------------
比楼上的晚了一步
------解决方案--------------------------------------------------------
select date2=cast( '2007-4-5 ' as date1) from table1 order by date2 desc
不过建议修改列,这样效率不高
------解决方案--------------------------------------------------------
declare @t table(d VarChar(30))
insert into @t select '2007-4-5 '
union select '2007-3-4 '
union select '2007-7-8 '
select s=cast(d as datetime) from @t order by s desc
------解决方案--------------------------------------------------------
<%# DataBinder.Eval(Container.DataItem, "AddTime ", "{0:D} ") %>
  相关解决方案