在datetime上选择DISTINCT

时间:2011-06-06 15:43:36

标签: datetime select distinct

我需要以MMM YYYY格式从SQLServer 2005表中显示名为datetimestamp的日期时间字段的不同值。我还需要它们按时间顺序排序。

到目前为止,我有这个:

Select distinct CONVERT(CHAR(4), datetimestamp, 100) + CONVERT(CHAR(4), datetimestamp, 120) as MonthYear from TableName order by MonthYear

“order by”当然会因转换而按字母顺序对其进行排序。

 Apr 2009 
 Dec 2009 
 Feb 2009

如何按时间顺序对其进行排序?

Feb 2009
Apr 2009
Dec 2009

感谢。

2 个答案:

答案 0 :(得分:3)

edit2:看起来你需要拉回多个列。这仅使用上一次尝试的子查询:

    select distinct DATEPART(year,datetimestamp) as year, 
           DATEPART(month,datetimestamp) as month,
           CONVERT(CHAR(4), datetimestamp, 100) 
           + CONVERT(CHAR(4), datetimestamp, 120) as MonthYear
    from TableName order by DATEPART(year,datetimestamp), 
                            DATEPART(month,datetimestamp)

答案 1 :(得分:0)