我在sqlserver里面建立一个表Users,里面有个字段RegisterTime为TimeStamp类型,
sql语句是insert into Users(firstname,lastname,username,password,RegisterTime) values(li,yang,liyang,password,2005-01-01 10:30:30)
结果执行的时候报错“java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]???????? varchar ????? timestamp ??????? eBookShop.dbo.Users?? RegisterTime????? CONVERT ????????? ”
看来是类型不匹配的问题,请问大家日期类型数据怎么插入到sql表中?
java 有TimeStamp类型 转过在插入
我另外写了个类的啊
/*
* Created on 2005-9-2
*/
import java.sql.Date;
/**
* @author raito
*/
public class StringToDate {
/**
* @param sign_date
* @return
*/
public static Date parse(String sign_date) {
if(sign_date==null){
return null;
}else{
Date date;
System.out.print("#"+sign_date+"#");
int year=Integer.parseInt(sign_date.substring(0,sign_date.indexOf("-")));
int month=Integer.parseInt(sign_date.substring(sign_date.indexOf("-")+1,sign_date.lastIndexOf("-")));
int day=Integer.parseInt(sign_date.substring(sign_date.lastIndexOf("-")+1,sign_date.length()));
date=new Date(year-1900,month-1,day);
return date;
}
}
}
是你的日期格式的问题,应该看看你的sqlserver里的日期格式是什么,然后按照那个日期格式往里插入
sqlserver还有datetime格式
“把时间用#包起来试试”这个是access的格式
晕~~用datetime完全可以符合你的需求了。
你的错误无非就是数据类型不匹配,在数据库中是Timestamp型,而insert的时候是string,当然也就不对了,楼上很多提出把插入的数据转换为timestamp类型就行。如
insert into @YOURTABLE(@data) values(@timestamp)不必要把@timestamp转换成string