我需要将日期字符串 -'2013-01-01' 转换为数字 --20130101 类型。如何在 Oracle 中有效地完成它?
My Input-
'2013-01-01'
My Output
Output-20130101
我需要将日期字符串 -'2013-01-01' 转换为数字 --20130101 类型。如何在 Oracle 中有效地完成它?
My Input-
'2013-01-01'
My Output
Output-20130101
select to_number(replace('2013-01-01', '-')) from dual;
您可以将字符串转换为日期并使用您想要的格式转换回来:
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
to_char(your_date,'YYYYMMDD')
这里只是使用带有日期的 to_char 的基础知识。
您还可以“利用”格式掩码:
select to_number('2013-01-01', '9999G99G99', 'nls_numeric_characters=,-')
from dual
要将日期字符串转换为数字:
始终先将其转换为 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