如何在sql server中对日期进行排序

时间:2012-02-13 17:20:57

标签: sql-server

我希望以升序的方式从我的dbtable命名为tblFormno2获取不同的日期。为此,我编写了以下查询,但它无法正常工作。

列date_submit被声明为datetime

select distinct (convert(nvarchar(100),date_submit,103)) as dob from 
tblFormno2 order by dob asc

此处输出显示为

05/07/2011
06/03/2011
06/07/2011
07/04/2011
08/01/2012

而不是

06/03/2011
07/04/2011
05/07/2011
06/07/2011
08/01/2012

如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

您的order by未按表格date_submit排序。是按date_submit的命名输出列进行排序。如果您按顺序具体表格名称应该可以使用。如果这不起作用,那么尝试为输出提供与表列不同的名称。

select distinct (Convert(nvarchar(100),date_submit,103)) as date_submit  
from tblFormno2 
order by tblFormno2.date_submit asc

答案 1 :(得分:1)

怎么样

select convert(nvarchar(10), date_submit_inner, 103) as date_submit from 
(
    select distinct date_submit as date_submit_inner from tblFormno2
) as T
order by T.date_submit_inner asc

答案 2 :(得分:0)

create table #temp
(
 DT varchar(20)
)

Insert into #temp(DT)values('13/05/2011')
Insert into #temp(DT)values('03/06/2011')
Insert into #temp(DT)values('07/06/2011')
Insert into #temp(DT)values('04/07/2011')
Insert into #temp(DT)values('01/08/2011')

Select * from #temp

Below are the database records...

enter image description here

select (convert(varchar,Dt,107)) t into #t from  #temp

select * from #t

enter image description here

drop table #temp
drop table #t