日期:2014-05-17  浏览次数:20574 次

请教关于向datetime插入数据的问题
我用java在写一个从oracle表中取数插入ms server 2005数据库
ms 表a
id nvarchar(32)
date datetime

insert into ztza values('" + rs_orcl.getString(1) + "','" + rs_orcl.getString(2) + "')

其中 rs_orcl.getString(2)可能为空
插入的时候就会报错
com.microsoft.sqlserver.jdbc.SQLServerException: 从字符串向 datetime 转换时失败

我改成这样
insert into ztza values('" + rs_orcl.getString(1) + "',convert(datetime,'" + rs_orcl.getString(2) +"',120))

还是报这个错误。

当我把表a的date字段类型改为 nvarchar(32) 后 
insert into ztza values('" + rs_orcl.getString(1) + "','" + rs_orcl.getString(2) + "')
这句就不会报错了

现在我想实现第一种情况 date字段类型为datetime,我改怎么处理?




------解决方案--------------------
时间类型跟字符串类型不一样,你的应该是类型冲突问题
------解决方案--------------------
你需要把时间字符串整理成sql server能识别的串才型.
例如:

2012-03-21
2012-03-21 16:41:01
...
------解决方案--------------------
探讨
rs_orcl.getString(2)的值为2012-3-20 14:14:12

------解决方案--------------------
探讨

我觉得很可能是rs_orcl.getString(2)可能为空的问题
因为如果不为空的话 我是可以正常插入的
但是我不知道怎么处理