【问题标题】:SQL query not working with forward slash - Oracle databaseSQL 查询不适用于正斜杠 - Oracle 数据库
【发布时间】:2015-09-01 05:53:20
【问题描述】:

我正在尝试在 oracle 数据库中执行 sql 查询(查询应该返回月份数),当我使用日期值时它可以工作:

select substr(to_char('8/19/2015 9:40:32 AM'), 1, instr(to_char('8/19/2015 9:40:32 AM'), '/', 1, 1)-1)
       from table_name t1

但是当我使用列名而不是日期时,它不会返回结果:

  select substr(to_char(t1.creation_date), 1, instr(to_char(t1.creation_date), '/', 1, 1)-1)
       from table_name t1

即使我逃避它:

  select substr(to_char(t1.creation_date), 1, instr(to_char(t1.creation_date), q'[/]', 1, 1)-1)
       from table_name t1

希望你能帮助我!

提前致谢

【问题讨论】:

  • select to_char(column_name,'mm') from table_name 它将返回月份数。

标签: sql oracle type-conversion


【解决方案1】:

试试下面:

select to_char(to_date('15-11-2010', 'DD-MM-YYYY'), 'MM') from dual

将在输出下方返回您:

11

对于列名:

select to_char(t1.creation_date, 'MM') from table_name t1

【讨论】:

    【解决方案2】:

    使用这个

    select to_number(to_char(t1.creation_date,'mm')) from table_name t1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-22
      • 2019-03-20
      • 2021-05-07
      • 2018-07-21
      • 2012-04-27
      • 2016-08-23
      • 2021-01-01
      相关资源
      最近更新 更多