我有一张表,并且其中一个字段是varchar2数据类型,它以字符串格式存储某些日期,例如Aug 17,Sep 18等。我想根据实际日期而不是字母对该字段进行排序,如何我可以将这些值转换为日期吗?
答案 0 :(得分:1)
您可以尝试使用TO_DATE
函数编写'Mon YY'
格式,因为第二个参数包括确定格式的语言,并order by
。 (感谢@Wernfried Domscheit指出)
SELECT TO_DATE('Aug 17','Mon RR', 'nls_date_language = american')
FROM DUAL
这是一个样本
with cte as (
SELECT 'Aug 17' dt
FROM DUAL
UNION ALL
SELECT 'Sep 18'
FROM DUAL
)
select To_char(TO_DATE(dt,'Mon RR', 'nls_date_language = american'),'Mon YY')
from cte
order by TO_DATE(dt,'Mon RR', 'nls_date_language = american') desc