原数据库和目标数据库都有一个varchar(20)的column
其中存储的数据类型类似于"2008-10-27 12:00:00"我在java里面将其读取出来
char[][] init_time = new char [datanumber][20];
init_time[index-1] = (rs.getString("init_time")).toCharArray();
s.executeUpdate(
"INSERT INTO emmb (init_time)"
+ " VALUES"
+ "("
+ init_time[i][0] + init_time[i][1] + init_time[i][2] + init_time[i][3] + init_time[i][4] + init_time[i][5]+......
+ ")"
               );或者用string方法
String init_time = new char [datanumber][20];
init_time[index-1] = rs.getString("init_time");
s.executeUpdate(
"INSERT INTO emmb (init_time)"
+ " VALUES"
+ "("
+ init_time[index-1]
+ ")"
               );但是很奇怪,Mysql总是报错:1064这个错误
测试发现,应该是前面日期和后面时间之间的空格的问题
但是,如果只读取2008-10-27,存入数据库中的是1971(=2008-10-27)不知道这是为什么,期盼解答,谢谢

解决方案 »

  1.   

    isdate是什么?能不能说明的详细点?很少用数据库,不是太了解的
      

  2.   

    在数据库端处理日期数据select CONVERT(varchar(10),getdate(),120 )
    2008-10-27rtrim
    返回截断所有尾随空格后的字符串
    ltrim
    返回删除前导空格后的字符表达式。
      

  3.   

    try:String init_time = new char [datanumber][20]; 
    init_time[index-1] = rs.getString("init_time"); 
    s.executeUpdate( 
    "INSERT INTO emmb (init_time)" 
    + " VALUES" 
    + "('" 
    + init_time[index-1] 
    + "')" 
                  ); 
      

  4.   

    个人支持小雄,楼主注意小雄加了单引号,+ " VALUES" 
    + "('
    + init_time[index-1] 
    + "')" 为了说明问题,做一个测试看看:
    declare @t table(id int,d varchar(20))insert into @t select 1,2008-09-17
    insert into @t select 1,'2008-09-17'
    select * from @t/*
    id          d
    ----------- --------------------
    1           1982
    1           2008-09-17(2 行受影响)
    */