SQL使用Oracle SQL对日历周期进行排序

SQL使用Oracle SQL对日历周期进行排序,sql,oracle,date,sql-order-by,Sql,Oracle,Date,Sql Order By,我是sql新手,我有问题,希望你们能帮助我 如何按日历期间订购以下数据。数据类型为VarChar2 Jan-2020 Feb-2020 Mar-2019 Jan-2019 Feb-2019 Mar-2020 提前谢谢你 您可以将字符串转换为日期to_date()并将其用于订购: order by to_date(mycol, 'mon-yyyy') 如果数据库或会话的语言不是英语,则需要附加参数,以便Oracle能够理解月份名称: order by to_date(mycol, 'm

我是sql新手,我有问题,希望你们能帮助我

如何按日历期间订购以下数据。数据类型为VarChar2

Jan-2020
Feb-2020
Mar-2019
Jan-2019
Feb-2019
Mar-2020

提前谢谢你

您可以将字符串转换为日期
to_date()
并将其用于订购:

order by to_date(mycol, 'mon-yyyy')
如果数据库或会话的语言不是英语,则需要附加参数,以便Oracle能够理解月份名称:

    order by to_date(mycol, 'mon-yyyy', 'nls_date_language = american')

用你正在使用的数据库标记你的问题。嗨@GordonLinoff,我正在使用Oracle数据库。嗨,我尝试了这个,但我得到了一个错误“ORA-01843:不是有效的月份”@Lawrencxe:大概,你的数据库语言不是英语。我为此添加了一个解决方案。@Lawrencxe:这就是为什么将“月值”之类的东西存储为字符串通常不是一个好主意的原因之一。最好将这样的东西存储为数字