社区
Oracle 高级技术
帖子详情
oracle的‘转换函数’怎么转啊
gggmcse
2010-01-30 05:41:59
如题,我从mysql向oracle里导入了一个表,表里面有个birthday的列,在原来在mysql里面此列是date类型的,可是向oracle导入时老是报错,但是把date变成varchar就导进去了,我现在把birthday以varchar字符类型导入了oracle里面所以
现在需要把oracle里面的varchar变成date,在网上查需要转换函数,请问大侠如何转换,具体点,比如在哪里敲那个命令。
谢谢各位大侠,小弟写的罗嗦了点,各位莫怪!
...全文
97
17
打赏
收藏
oracle的‘转换函数’怎么转啊
如题,我从mysql向oracle里导入了一个表,表里面有个birthday的列,在原来在mysql里面此列是date类型的,可是向oracle导入时老是报错,但是把date变成varchar就导进去了,我现在把birthday以varchar字符类型导入了oracle里面所以 现在需要把oracle里面的varchar变成date,在网上查需要转换函数,请问大侠如何转换,具体点,比如在哪里敲那个命令。 谢谢各位大侠,小弟写的罗嗦了点,各位莫怪!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gggmcse
2010-01-31
打赏
举报
回复
我查了下资料,通过sql server可以转换下,但是还是不能导入到Oracle
语句是这样的:
select *,
convert (smalldatetime ,bday) as bday
from user1
namgking
2010-01-31
打赏
举报
回复
应该还是数据的问题,如果确定是yyyy-mm-dd的格式,应该不会有问题的。
检查下数据格式吧。
gggmcse
2010-01-31
打赏
举报
回复
bday列是这样的
gggmcse
2010-01-31
打赏
举报
回复
确定是啊,数据原来在mysql里面,是date类型,默认是0000-00-00,用户填写后就是用户的生日了,不知大侠明白么?现在以varchar2导入到Oracle里了还是以0000-00-00这种格式显示的
namgking
2010-01-31
打赏
举报
回复
把这个列的数据贴上来看看
namgking
2010-01-31
打赏
举报
回复
[Quote=引用 10 楼 gggmcse 的回复:]
8楼说的,我直接输入:
select to_date(bday||' 00:00:00', 'YYYY-MM-DD HH24:MI:SS') from bbs
其中bday是列名,bbs是表名,仍然报错说是‘无效的月份’
是不是我输入错了啊?本人小菜鸟,莫笑
[/Quote]
你确定你的数据格式是yyyy-mm-dd的格式?
gggmcse
2010-01-31
打赏
举报
回复
8楼说的,我直接输入:
select to_date(bday||' 00:00:00', 'YYYY-MM-DD HH24:MI:SS') from bbs
其中bday是列名,bbs是表名,仍然报错说是‘无效的月份’
是不是我输入错了啊?本人小菜鸟,莫笑
gggmcse
2010-01-31
打赏
举报
回复
我查了下资料,可以用convert 或者cast转换,我自己正在研究中,有结果了告诉大家
namgking
2010-01-31
打赏
举报
回复
[Quote=引用 7 楼 gggmcse 的回复:]
大侠crazylaa所说的方法:select to_date(col_name,'YYYY-MM-DD HH24:MI:SS') from tbl
我试了下,提示‘ORA-01843:无效的月份’不知道是怎么回事。
还有就是我要转换的是一列的数据,都是‘0000-00-00’格式的,4、6楼的大侠所举的例子是不是针对
某个特定的值?我不是很理解,本人太菜了,大侠莫怪嘿嘿,请说滴再明白点点……
[/Quote]
你原先的格式是0000-00-00,说明是yyyy-mm-dd的格式
那就select to_date(col_name||' 00:00:00', 'YYYY-MM-DD HH24:MI:SS') from tbl
这样查询出来的数据就是0000-00-00 00:00:00的date类型格式
gggmcse
2010-01-31
打赏
举报
回复
大侠crazylaa所说的方法:select to_date(col_name,'YYYY-MM-DD HH24:MI:SS') from tbl
我试了下,提示‘ORA-01843:无效的月份’不知道是怎么回事。
还有就是我要转换的是一列的数据,都是‘0000-00-00’格式的,4、6楼的大侠所举的例子是不是针对
某个特定的值?我不是很理解,本人太菜了,大侠莫怪嘿嘿,请说滴再明白点点……
gggmcse
2010-01-31
打赏
举报
回复
报告各位大侠,我有解决办法了虽然很复杂呵呵
1,将mysql的原文件以.sql 文件导出,修改原文件中的0000-00-00为‘null’
2,将修改好的文件再导回mysql,并把date修改为varchar
3,将修改好的表以varchar导入sql server
4,用sql server把表导入Oracle的date中
至此,大功告成!
注意:第三步中,不经过sql server直接导入oracle 的date不可以,我做过实验了,不知为什么,还望大侠解释!
感谢各位大侠的帮助!感激!
yangyinbo
2010-01-30
打赏
举报
回复
INSERT INTO TEST VALUES ( to_date ( '2007-12-20 18:31:34' , 'YYYY-MM-DD HH24:MI:SS' ) ) ;
randy_ideal
2010-01-30
打赏
举报
回复
1. add新列,类型为date
2. 新列内容根据旧列update,to_date
3. drop掉旧列
4. 重命名新列为旧列名
碧水幽幽泉
2010-01-30
打赏
举报
回复
这要看你转换的日期格式是什么
现列举几种:
select to_date('20100130','yyyymmdd') from dual;
select to_date('01-5月-05','dd-mon-yy') from dual;
select * to_date('2010-01-30 18:30:00','YYYY-MM-DD HH24:MI:SS') from dual;
....
还有很多!
crazylaa
2010-01-30
打赏
举报
回复
以上,Y代表年,M代表月,D代表日,HH24代表24小时制的时,MI分,SS秒,按照你的varchar字段这6项的排列来对应组合,注意空格等。
crazylaa
2010-01-30
打赏
举报
回复
select to_date(col_name,'YYYY-MM-DD HH24:MI:SS') from tbl
多了个星。
crazylaa
2010-01-30
打赏
举报
回复
select * to_date(col_name,'YYYY-MM-DD HH24:MI:SS') from tbl
oracle
数据
转
换
,
Oracle
数据库
转
换
函数
Oracle
数据库
转
换
函数
Oracle
数据库
转
换
函数
转
换
函数
共有3种:TO_CHAR(),TO_DATE()和TO_NUMBER()。
转
字符串
函数
:该
函数
可以将数字或者日期
转
换
为字符串。语法:TO_CHAR(列|日期|数字,
转
换
格式)。
转
换
格式主要有两种...
oracle
之
转
换
函数
oracle
中常用的
转
换
函数
TO_CHAR:
转
字符串 TO_DATE:
转
换
成日期 TO_NUMBER:
转
换
成数字 CAST:
转
类型 TO_DATE:
转
日期 TO_NUMBER:
转
数字
04、
Oracle
转
换
函数
和条件表达式
Oracle
转
换
函数
和条件表达式
oracle
日期型
函数
转
换
,
oracle
中,日期
转
换
函数
oracle
中,日期
转
换
函数
有很多,常用命令如下:to_char()命令将时间戳
转
换
为用户规定的日期格式,如:SELECTTO_CHAR(sysdate,'YYYY-MM-DDhh24:mi:ss')FROMDUAL;语法:TO_CHAR(X [,format])说明:将X按format格式
转
换
...
ORACLE
数据库-
转
换
函数
转
换
函数
,
oracle
数据库
Oracle 高级技术
3,491
社区成员
18,714
社区内容
发帖
与我相关
我的任务
Oracle 高级技术
Oracle 高级技术相关讨论专区
复制链接
扫一扫
分享
社区描述
Oracle 高级技术相关讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章