2

我需要将日期字符串 -'2013-01-01' 转换为数字 --20130101 类型。如何在 Oracle 中有效地完成它?

    My Input-

'2013-01-01'

   My Output

    Output-20130101
4

5 回答 5

5
select to_number(replace('2013-01-01', '-')) from dual;
于 2013-02-11T17:16:54.550 回答
3

您可以将字符串转换为日期并使用您想要的格式转换回来:

select to_char(to_date('2013-01-01', 'YYYY-MM-DD'), 'YYYYMMDD');

有关日期时间格式的更多信息:

http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm

于 2014-08-29T17:04:35.390 回答
2
   to_char(your_date,'YYYYMMDD')

这里只是使用带有日期的 to_char 的基础知识。

于 2013-02-11T16:57:36.677 回答
1

您还可以“利用”格式掩码:

select to_number('2013-01-01', '9999G99G99', 'nls_numeric_characters=,-')
from dual

这是一个 sqlfiddle 演示

于 2013-02-11T21:12:22.470 回答
0

要将日期字符串转换为数字:

始终先将其转换为 char,然后再转换为数字:

Select TO_NUMBER(TO_CHAR(to_date('2013-01-01', 'YYYY-MM-DD'),'YYYYMMDD')) from dual

如果您的列数据类型是 DATE,则在下面使用您的列名代替 sysdate:

Select TO_NUMBER(TO_CHAR(sysdate,'YYYYMMDD')) from dual
于 2020-07-02T18:12:21.813 回答