我有一个情况
我需要将varchar
值从dd-mmm-yyyy
转换为dd/mm/yyyy
按上述转换日期排序
使用
CONVERT(VARCHAR(10), CAST([Date] AS DATETIME), 103) as ModifiedDate
我得到了所需的格式,但是当我按ModifiedDate
按结果显示2013年,2014年,2015年混合比赛的顺序。我认为它按日期排序。我在哪里做错了?有人可以帮忙吗?谢谢
答案 0 :(得分:6)
由于ModifiedDate
是一个varchar,它的排序是词汇(01/01/1900
< 01/01/1901
< 02/01/1900
}。
解决方案不是使用varchar进行排序。将您的varchar-date转换为实际日期(即只有CAST([Date] AS DATETIME)
而没有外部CONVERT
)并按此表达式排序。
答案 1 :(得分:-1)
select CONVERT(VARCHAR(10),cast ([Date] AS DATETIME),103) as ModifiedDate
from <table name> order by CONVERT(VARCHAR(10),cast ([Date] AS DATETIME),103)