如何将时间戳转换为5-6位数字?

时间:2014-07-14 19:46:04

标签: oracle timestamp data-conversion

我有一个类似于此12/31/1999 12:00:00.000000 AM的tiemstamp日期 我希望它变成这个121999。基本上省略了这一天。

如果月份是1月至9月,则数字应为5位数(IE.21998),10月至12月应为6位数(IE.102014)

我有一些有用的东西,但它看起来像个穴居人。还有更好的方法吗?

   SELECT  TO_NUMBER(SUBSTR(TO_CHAR(EX_DATE,'MMDDYYYY'),1,2))
            ||TO_NUMBER(SUBSTR(TO_CHAR(EX_DATE,'MMDDYYYY'),5)) AS  EX_DATE
    FROM TOL

提前致谢

1 个答案:

答案 0 :(得分:0)

我想你只想要

SELECT to_char( ex_date, 'fmMMYYYY' ) as ex_date
  FROM tol

如果您想要5或6个字符串或

SELECT to_number( to_char( ex_date, 'fmMMYYYY' )) as ex_date
  FROM tol

如果你想要一个号码。

当然,我会毫不犹豫地拨打字符串或号码ex_date。我会毫不犹豫地调用timestamp类似于ex_date的列,这意味着数据类型实际上是date。我会使用能够正确识别数据类型的内容,例如ex_ts timestamp,或者我会更改数据类型以匹配列的名称。