这就是我的Date列的样子
RPT_DT (Data Type is Number)
20180131
20180130
20180129
我想从这些日期中提取月份(月或毫米),我在下面尝试
select extract(month from to_date(Rpt_dt))
from
(
select distinct to_char(to_date(RPT_DT,'yyyymmdd'),'mm/dd/yyyy') Rpt_dt
from TABLE_NAME
)
我收到错误"不是有效月份"
答案 0 :(得分:3)
如果没有任何特殊原因进行双重转换,我建议您使用这个简单的查询来处理问题:
select substr(to_char(RPT_DT),5,2)from THE_TABLE
此查询应该更高效,因为它只进行一次转换。在你的样本中你改变:
如果有帮助请告诉我 河
答案 1 :(得分:1)
试试这个,
SELECT EXTRACT(MONTH FROM TO_DATE(rpt_dt, 'YYYYMMDD'))
FROM TABLE_NAME;
我相信你需要修改你的查询,因为你没有放置格式' MM / DD / YYYY',
select extract(month from to_date(Rpt_dt, 'MM/DD/YYYY'))
from
(
select distinct to_char(to_date(RPT_DT,'yyyymmdd'),'mm/dd/yyyy') Rpt_dt
from TABLE_NAME
)
答案 2 :(得分:0)
这种来回转换毫无用处。试试这个
select
extract(month from to_date(RPT_DT,'yyyymmdd'))
from TABLE_NAME;