以下效果很好,但我想在其中也有明确的选项
select convert(nvarchar(10),datestart,103)
from o_course
order by convert(datetime, datestart, 103) desc
但如果我将其更改为
select distinct convert(nvarchar(10),datestart,103)
from o_course
order by convert(datetime, datestart, 103) desc
我得到了
Msg 145,Level 15,State 1,Line 1 如果指定了SELECT DISTINCT,则ORDER BY项必须出现在选择列表中。
我的目标是从日期时间字段中获取所有不同的日期,并将它们降序排序。
任何帮助将不胜感激。
答案 0 :(得分:1)
将DISTINCT与此类别分开。
select
convert(nvarchar(10), foo.datestart, 103)
from
(SELECT DISTINCT datestart FROM o_course) foo
order by
foo.datestart DESC
答案 1 :(得分:1)
使用GROUP BY而不是distinct。
select convert(nvarchar(10),datestart,103)
from o_course
group by convert(nvarchar(10),datestart,103)
order by convert(datetime, datestart, 103) desc
答案 2 :(得分:0)
错误消息告诉您出了什么问题。这是修复它的一种方法:
select distinct convert(nvarchar(10),datestart,103)
from o_course
order by convert(nvarchar(10), datestart, 103) desc
答案 3 :(得分:0)
我认为这会对你有所帮助:
select somedate from (select distinct convert(nvarchar(10),datestart,103) as somedate
from o_course) t order by somedate desc