1.将字符串类型转换为数字类型,这个方法直接用to_number()进行转换,具体的语法是to_number(STR)可以进行转换。
2.将数字类型转换成字符串类型的,这个转换使用to_char(),它有点像上面的to_number()模式,999表示相同的内容。
3.将日期类型转换成字符串类型,这种方法其实也用的是to_char(),就是将日期格式的转换成自己想要的格式类型的,这种方法比较个性化一点。
4. 下面的代码将日期类型转换为一种常见的字符串类型,这种类型更常见,并且是一种更完整的字符串格式。
5.将字符串类型转换成日期类型。这种转换方式用to_date()进行转换。用法也比较简单,转换的日期格式也是自己自定义的。
6.完成效果图。
你的这串字符串很难直接让数据库识别,但是好在它有规律,按照下面的方法应该可以转换过来。
现在假设表名为TBL,存储该列数据的字段名为DDATE,用下列的语句可以实现日期的转换
SELECT DDATE,
TO_DATE(SUBSTR(DDATE, 8, 4) || DECODE(SUBSTR(DDATE, 1, 3),
'Feb',
'01',
'Jan',
'02',
'Mar',
'03') ||
LPAD(TRIM(SUBSTR(DDATE, 5, 2)), 2, '0') ||
LPAD(TRIM(SUBSTR(DDATE, 13, 8)), 8, '0'),'YYYY-MM-DD HH:MI:SS')
FROM TBL
以上的部分你需要在DECODE部分将其余的9个月份的英文缩写和对应月份补齐即可。
oracle;
TO_DATE('时间','yyyy-MM-dd HH24:MI:ss')) --24代表24时制,后面是MI,不是MM哦!
如:
TO_DATE(’2008-10-19 10:11:30.345‘,'yyyy-MM-dd HH24:MI:ss'))
TO_DATE(char[, 'fmt'])
TO_DATE(‘01/7月/2001','DD/MON/YYYY') 类似就可以了
在当前session执行。
alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
然后再执行sql.
注意只在当前session有效。