请看这句:insert into newhire values ('corey','MA','12-Dec-01','50000');哪里有错? insert into newhire values ('corey','MA',to_date('12-Dec-2001'),'50000'); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 insert into newhire values ('corey','MA',to_date('2001-12-12'),'50000'); '12-Dec-01' 改成 to_date('2001-12-12','yyyy-mm-dd')详细请参看: http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=185465 insert into newhire values ('corey','MA',to_date('2001-12-12','yyyy-mm-dd'),'50000') insert into newhire values ('corey','MA',to_date('2001-12-12','yyyy-mm-dd'),50000); 我星期五也碰到过这种情况。oracle好像默认的日期格式是:'12-12月-01',你可以敲这个命令来查看当前日期格式:select sysdate from dual;有两种解决方法:1、好像上面几层的兄弟说的那样用to_date函数:to_date('12-12-01','dd-mm-yy').格式是自己设定的。2、用date前缀使用SQL99字面标准(YYYY-MM-DD):DATE '2001-12-12'。 insert into newhire values ('corey','MA',to_date('2001-12-12','yyyy-mm-dd'),50000); 先谢了,我还没上机调试,回去试了后结贴我看的是 机械出版社的书,照着书上输入的,这书不会有错把????? 书名是ORACLE 9I 初学者**(忘了), 书上有ORACLE PRESS字样 '12-Dec-01' 有问题,SELECT TO_CHAR(SYSDATE,'YYYYMMDD') FROM DUAL 看下你数据库的日期格式 很明显是日期字段的数值类型不匹配,上面的高手们说的方法完全正确,对于to_date函数来说,本人在使用时省略了后面的 'yyyy-mm-dd',即只有to_date('2001-12-12')就行了,呵呵,这个也有人说过了。 关于oracle的日期格式,是个很讨厌的问题。你可以用alter sessen set nls_date_format = 'yyyy-mm-dd hh24:Mi:ss'修改为我们常用的格式。但是每次都要改。如何永久修改日期格式呢?有很多人提出各种解决办法,包括改注册表,但我试验后都不行。我在asktom.oracle.com找到了一个解决办法(查nls_date_format),就是大名鼎鼎的TOM KYTE.我觉得不错,放在这里与大家分享。原因是这样的:如果客户机的注册表里定义了nls_lang,则init.ora中所有的nls设置都将被忽略,也就是说你在init.ora中设置nls_date_format是没用的。解决办法:定义一个数据库触发器,在用户登录时执行create or replace trigger data_logon_trigger after logon ON DATABASE begin execute immediate 'alter session set nls_date_format = ''YYYY-MM-DD HH24:Mi:SS'' '; end; /定义了该触发器后,每次登录后,日期的格式都会自动被设置为''YYYY-MM-DD HH24:Mi:SS。但是Tom同时建议大家,永远不要偷懒试图让oracle完成字符到日期型的转换,还是老老实实的用to_date函数吧。Tom的网站很好,建议大家常去看看。不要问我谁是Tom,否则我会笑你孤陋寡闻噢:-) 我星期五也碰到过这种情况。oracle好像默认的日期格式是:'12-12月-01',你可以敲这个命令来查看当前日期格式:select sysdate from dual;有两种解决方法:1、好像上面几层的兄弟说的那样用to_date函数:to_date('12-12-01','dd-mm-yy').格式是自己设定的。2、用date前缀使用SQL99字面标准(YYYY-MM-DD):DATE '2001-12-12'。 没有错,你的日期格式有问题,要用to_date函数来转化 如果查询出用户创建的触发器的相关信息 奇怪问题,plsql能连接,服务端却不能连接 游标问题,请大神帮解释下 寻找数据库维护服务 兄弟们救命!! Oracle中有没有拒绝权限呀. 利用子查询更新表内容问题求救。update table1 set field1=(Select ).... 高手指点:未锁定含有 LOB 值的行????????????? 开启并行 触发器问题(根据另一表中的条件决定是否插入到另一表) 求教多表连接问题 ====请教:存储过程最多可以写到多大?有限制么?====
oracle好像默认的日期格式是:'12-12月-01',你可以敲这个命令来查看当前日期格式:select sysdate from dual;
有两种解决方法:
1、好像上面几层的兄弟说的那样用to_date函数:to_date('12-12-01','dd-mm-yy').格式是自己设定的。
2、用date前缀使用SQL99字面标准(YYYY-MM-DD):DATE '2001-12-12'。
SELECT TO_CHAR(SYSDATE,'YYYYMMDD') FROM DUAL 看下你数据库的日期格式
你可以用alter sessen set nls_date_format = 'yyyy-mm-dd hh24:Mi:ss'修改为我们常用的格式。但是每次都要改。如何永久修改日期格式呢?有很多人提出各种解决办法,包括改注册表,但我试验后都不行。
我在asktom.oracle.com找到了一个解决办法(查nls_date_format),就是大名鼎鼎的TOM KYTE.我觉得不错,放在这里与大家分享。
原因是这样的:如果客户机的注册表里定义了nls_lang,则init.ora中所有的nls设置都将被忽略,也就是说你在init.ora中设置nls_date_format是没用的。
解决办法:定义一个数据库触发器,在用户登录时执行
create or replace trigger data_logon_trigger
after logon
ON DATABASE
begin
execute immediate
'alter session set nls_date_format = ''YYYY-MM-DD HH24:Mi:SS'' ';
end;
/
定义了该触发器后,每次登录后,日期的格式都会自动被设置为''YYYY-MM-DD HH24:Mi:SS。
但是Tom同时建议大家,永远不要偷懒试图让oracle完成字符到日期型的转换,还是老老实实的用to_date函数吧。
Tom的网站很好,建议大家常去看看。
不要问我谁是Tom,否则我会笑你孤陋寡闻噢:-)
oracle好像默认的日期格式是:'12-12月-01',你可以敲这个命令来查看当前日期格式:select sysdate from dual;
有两种解决方法:
1、好像上面几层的兄弟说的那样用to_date函数:to_date('12-12-01','dd-mm-yy').格式是自己设定的。
2、用date前缀使用SQL99字面标准(YYYY-MM-DD):DATE '2001-12-12'。