【问题标题】:SQL Order the calendar period using Oracle SQLSQL 使用 Oracle SQL 对日历期间进行排序
【发布时间】:2020-07-08 02:55:34
【问题描述】:

我是sql新手,有疑问,希望你能帮助我。

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

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

提前谢谢你!

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。
  • 嗨@GordonLinoff,我正在使用Oracle 数据库。

标签: sql oracle date sql-order-by


【解决方案1】:

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

order by to_date(mycol, 'mon-yyyy')

如果您的数据库或会话的语言不是英语,您需要一个额外的参数以便 Oracle 可以理解月份名称:

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

【讨论】:

  • 嗨,我试过这个,但我得到一个错误'ORA-01843: not a valid month'
  • @Lawrencxe:大概,您的数据库的语言不是英语。我为此添加了一个解决方案。
  • @Lawrencxe:这就是为什么将“月份值”之类的内容存储为字符串通常不是一个好主意的原因之一。最好将这样的东西存储为数字
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
相关资源
最近更新 更多