Sql 将不同长度的数字转换为日期
我试图将(9012012020)等数字转换为日期(2020120120200901) 我有不同长度的数值,就像上面我试过的一样Sql 将不同长度的数字转换为日期,sql,oracle,date,Sql,Oracle,Date,我试图将(9012012020)等数字转换为日期(2020120120200901) 我有不同长度的数值,就像上面我试过的一样 select TO_DATE(TO_CHAR(col_name), 'YYYYMMDD') from table_name 我需要您的帮助,如果这些值是有效的,请感谢,也就是说,没有类似的值 ab232020 38269283 所有值都采用相同的格式,然后可以执行以下操作: (更改会话只是为了让您知道什么代表什么;您不必这样做) 查询本身: SQL> wi
select TO_DATE(TO_CHAR(col_name), 'YYYYMMDD')
from table_name
我需要您的帮助,如果这些值是有效的,请感谢,也就是说,没有类似的值
- ab232020
- 38269283
SQL> with test (col) as
2 (select 9012020 from dual union all
3 select 12012020 from dual
4 )
5 select col,
6 to_date(lpad(col, 8, '0'), 'mmddyyyy') result
7 from test;
COL RESULT
---------- ----------
9012020 01.09.2020
12012020 01.12.2020
SQL>
在TO_CHAR中应用格式,添加前导零(或LPAD),并在TO_date中使用匹配的格式“MMDDYYYY”我可以将日期翻转为类似于yyyyymmdd吗?日期不能翻转,它以内部格式存储。TO_DATE仅用于将表示日期的字符串转换为使用给定格式的日期,反之亦然。
SQL> with test (col) as
2 (select 9012020 from dual union all
3 select 12012020 from dual
4 )
5 select col,
6 to_date(lpad(col, 8, '0'), 'mmddyyyy') result
7 from test;
COL RESULT
---------- ----------
9012020 01.09.2020
12012020 01.12.2020
SQL>