Oracle 字符串转换为日期格式

字符串如下:Jan120069:59:04:343AMMar2120068:05:11:563AMApr13200710:43:30:966AM附图:求助,有什么简单点的... 字符串如下:
Jan 1 2006 9:59:04:343AM
Mar 21 2006 8:05:11:563AM
Apr 13 2007 10:43:30:966AM
附图:

求助,有什么简单点的方式,转换成date格式,可以把毫秒忽略
问题已经解决:
to_date(substr(jzrq, 1, 20) || ' ' || substr(jzrq, 25, 2), 'mon dd yyyy hh12:mi:ss AM');

谢谢各位。
展开
 我来答
大宝妈谈教育
高粉答主

2020-03-27 · 关注我不会让你失望
知道小有建树答主
回答量:3306
采纳率:100%
帮助的人:52.1万
展开全部

1.将字符串类型转换为数字类型,这个方法直接用to_number()进行转换,具体的语法是to_number(STR)可以进行转换。

2.将数字类型转换成字符串类型的,这个转换使用to_char(),它有点像上面的to_number()模式,999表示相同的内容。

3.将日期类型转换成字符串类型,这种方法其实也用的是to_char(),就是将日期格式的转换成自己想要的格式类型的,这种方法比较个性化一点。

4. 下面的代码将日期类型转换为一种常见的字符串类型,这种类型更常见,并且是一种更完整的字符串格式。

5.将字符串类型转换成日期类型。这种转换方式用to_date()进行转换。用法也比较简单,转换的日期格式也是自己自定义的。

6.完成效果图。

ubai_2009
推荐于2017-12-16 · TA获得超过630个赞
知道小有建树答主
回答量:366
采纳率:66%
帮助的人:162万
展开全部
你的这串字符串很难直接让数据库识别,但是好在它有规律,按照下面的方法应该可以转换过来。
现在假设表名为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个月份的英文缩写和对应月份补齐即可。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来生缘已成往事
2012-11-21 · 超过18用户采纳过TA的回答
知道答主
回答量:109
采纳率:0%
帮助的人:55.4万
展开全部
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'))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上帝的帝2
2012-11-21 · 超过33用户采纳过TA的回答
知道答主
回答量:256
采纳率:0%
帮助的人:114万
展开全部
TO_DATE(char[, 'fmt'])

TO_DATE(‘01/7月/2001','DD/MON/YYYY') 类似就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大侠的眼泪
2012-11-21 · TA获得超过334个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:91.4万
展开全部
在当前session执行。
alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';

然后再执行sql.

注意只在当前session有效。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式