如:INSERT INTO personinfo (sPersonID ,sPersonName ,dAddTime, dUpdateTime)
values (:sPersonID ,:sPersonName ,:dAddTime, :dUpdateTime)
但是现在问题来了,最后提交出现的错误ORA-01843: not a valid month ,mssql中的日期是这样的'2015-01-12 03:32:35',
请问怎么处理这个问题,ORACLE中dAddTime, dUpdateTime是TIMESTAMP类型,mssql中是Datatime类型
7 个解决方案
#1
TIMESTAMP是什么类型?
不应该是Date类型才对吗
oracle中date类型需要转换
to_date("2014-1-1 0:0:0","yyyy-mm-dd hh24:mi:ss")
不应该是Date类型才对吗
oracle中date类型需要转换
to_date("2014-1-1 0:0:0","yyyy-mm-dd hh24:mi:ss")
#2
INSERT INTO personinfo (sPersonID ,sPersonName ,dAddTime, dUpdateTime)
values (:sPersonID ,:sPersonName ,to_date(':dAddTime','yyyy-mm-dd hh24:mi:ss'),to_date(' :dUpdateTime','yyyy-mm-dd hh24:mi:ss'))
values (:sPersonID ,:sPersonName ,to_date(':dAddTime','yyyy-mm-dd hh24:mi:ss'),to_date(' :dUpdateTime','yyyy-mm-dd hh24:mi:ss'))
#3
pl/sql 中这样转换to_timestamp('2015-03-12 03:32:35' ,'yyyy-mm-dd hh24:mi:ss') 是没有问题的,现在就是有参数代替报错
#4
使用kettle吧,一个基于Java的开原的ETL工具,或者其它的ETL工具
#5
to_timestamp('','')是语法部分,是数据库里的函数,你需要把这个内容拼接到SQL语句里,而不是传进参数里
而只应该把时间字符串作为参数
#6
此外,如果你参数已经指定了是timestamp类型,那么可能不需要显式调用转换函数也可以,显式调用反而不对,需要测试一下
#7
就是说,如果你传入的参数是varchar类型,那么你需要执行to_timestamp转换类型
而如果参数本身就是timestamp类型,就不要转换了
而如果参数本身就是timestamp类型,就不要转换了
#1
TIMESTAMP是什么类型?
不应该是Date类型才对吗
oracle中date类型需要转换
to_date("2014-1-1 0:0:0","yyyy-mm-dd hh24:mi:ss")
不应该是Date类型才对吗
oracle中date类型需要转换
to_date("2014-1-1 0:0:0","yyyy-mm-dd hh24:mi:ss")
#2
INSERT INTO personinfo (sPersonID ,sPersonName ,dAddTime, dUpdateTime)
values (:sPersonID ,:sPersonName ,to_date(':dAddTime','yyyy-mm-dd hh24:mi:ss'),to_date(' :dUpdateTime','yyyy-mm-dd hh24:mi:ss'))
values (:sPersonID ,:sPersonName ,to_date(':dAddTime','yyyy-mm-dd hh24:mi:ss'),to_date(' :dUpdateTime','yyyy-mm-dd hh24:mi:ss'))
#3
pl/sql 中这样转换to_timestamp('2015-03-12 03:32:35' ,'yyyy-mm-dd hh24:mi:ss') 是没有问题的,现在就是有参数代替报错
#4
使用kettle吧,一个基于Java的开原的ETL工具,或者其它的ETL工具
#5
to_timestamp('','')是语法部分,是数据库里的函数,你需要把这个内容拼接到SQL语句里,而不是传进参数里
而只应该把时间字符串作为参数
#6
此外,如果你参数已经指定了是timestamp类型,那么可能不需要显式调用转换函数也可以,显式调用反而不对,需要测试一下
#7
就是说,如果你传入的参数是varchar类型,那么你需要执行to_timestamp转换类型
而如果参数本身就是timestamp类型,就不要转换了
而如果参数本身就是timestamp类型,就不要转换了