免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5343 | 回复: 11
打印 上一主题 下一主题

如何指定dateformat [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-27 16:56 |只看该作者 |倒序浏览
最近装在数据,发现了一个难题
一段含有date类型字段(形如"12-DEC-00" )的文本,因为不知道怎样才是正确的dateformat,总是没有办法装进数据库中,请教一下大家应该如何设置。
---------------------
SQL3129W  The date, time, or timestamp field containing "12-DEC-00" in row "5"
and column "35" was padded with blanks.

----------------------
我尝试使用下面的语句进行导入:
import from test of del modified by coldel0x09 dateformat="DD-MMM-YY"  insert into stat_test
结果终于还是失败了

有谁知道dateformat的详细设置么?
指点一下啊...

论坛徽章:
0
2 [报告]
发表于 2005-09-27 17:09 |只看该作者

如何指定dateformat

MMM仅在timestampformat中有效,而在dateformat中无效,两个办法,如果是抽取出来的数据,就重新抽取一下,使用DB2中合法的格式抽取,如果不是抽取出来的数据,替换一下好了。

论坛徽章:
0
3 [报告]
发表于 2005-09-27 17:13 |只看该作者

如何指定dateformat

不能通过直接设置dateformat,成功导入么?
重新抽取是无效的,使用sqlplus在源数据库(oracle)中看到,原数据也是一样的:
SQL>; select create_date from test where rownum<5;

CREATE_DA
---------
24-OCT-03
12-DEC-00
12-DEC-00
12-DEC-00

论坛徽章:
0
4 [报告]
发表于 2005-09-27 17:41 |只看该作者

如何指定dateformat

可以通过环境变量设置,改变Oracle的date型数据的形式的。

补充一下:NLS_DATEFORMAT

论坛徽章:
0
5 [报告]
发表于 2005-09-27 17:47 |只看该作者

如何指定dateformat

或者使用to_char函数:

select to_char(create_date,'yyyy-mm-dd') from test where rownum<5

论坛徽章:
0
6 [报告]
发表于 2005-09-27 17:48 |只看该作者

如何指定dateformat

[quote]原帖由 "isolation"]可以通过环境变量设置,改变Oracle的date型数据的形式的。[/quote 发表:

呵呵,谢谢isolation 的回复。
oracle的数据库是用作生产系统,我可不能也不敢动它分毫。
我查了下command reference,看来是没有办法在dateformat上下功夫了:
dateformat=″x″
x is the format of the date in the source file.1 Valid date elements are:
YYYY - Year (four digits ranging from 0000 - 9999)
M - Month (one or two digits ranging from 1 - 12)
MM - Month (two digits ranging from 1 - 12; mutually exclusive with M)
D - Day (one or two digits ranging from 1 - 31)
DD - Day (two digits ranging from 1 - 31; mutually exclusive with D)
DDD - Day of the year (three digits ranging from 001 - 366; mutually exclusive with other day or month elements)
A default value of 1 is assigned for each element that is not specified.
Some examples of date formats are: "D-M-YYYY" "MM.DD.YYYY" "YYYYDDD"
[/img]

论坛徽章:
0
7 [报告]
发表于 2005-09-27 17:49 |只看该作者

如何指定dateformat

看看前面的回复吧。

论坛徽章:
0
8 [报告]
发表于 2005-09-27 18:09 |只看该作者

如何指定dateformat

谢谢
考虑了一下,我唯一能采取的办法就是,写个function,利用case when转换了

论坛徽章:
0
9 [报告]
发表于 2005-09-28 08:16 |只看该作者

如何指定dateformat

不用啊,只要用函数to_char做抽取就可以了:

select to_char(create_date,'yyyy-mm-dd') from test where rownum<5

论坛徽章:
0
10 [报告]
发表于 2005-09-28 16:38 |只看该作者

如何指定dateformat

谢谢isolation  的回复
因为我们公司采用的抽取程序没有办法那样做
所以只好以字符类型转载该数据,然后再数据库里面转换过来
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP