数据库表中有一datetime字段,我用prepareStatement语句,怎么会写日期不进去呢?
我的代码如下:
prepareStatement _pstInsert = _conDB.prepareStatement("INSERT INTO Tbl""(last_modified) VALUES (?)");
现有几个问题想问:
1.写当前日期:
java.sql.Date d = new java.sql.Date( (new java.util.Date()).getTime() );
_pstInsert.setDate(1,d); 这样的执行时,会出异常/出错:[Microsoft][ODBC SQL Server Driver]没有执行可选特性2.写String入数据库
String strdate = "2006-4-16";
_pstInsert.setString(1,strdate);
这样有时可以,有时又不可以,冒出这样的异常:
[Microsoft][ODBC SQL Server Driver][SQL Server]从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。 望各位解难!!
我的代码如下:
prepareStatement _pstInsert = _conDB.prepareStatement("INSERT INTO Tbl""(last_modified) VALUES (?)");
现有几个问题想问:
1.写当前日期:
java.sql.Date d = new java.sql.Date( (new java.util.Date()).getTime() );
_pstInsert.setDate(1,d); 这样的执行时,会出异常/出错:[Microsoft][ODBC SQL Server Driver]没有执行可选特性2.写String入数据库
String strdate = "2006-4-16";
_pstInsert.setString(1,strdate);
这样有时可以,有时又不可以,冒出这样的异常:
[Microsoft][ODBC SQL Server Driver][SQL Server]从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。 望各位解难!!
2.是在执行是有时出错。
如写2006-2-30、2006-4-31等就会出错
所以,ps.setDate(new java.util.Date());就可以了
try{
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date d=sdf.parse(tmp);
return true;
}catch(Exception e){return false;},
如果能成功转化为日期则说明是日期字符,否则不是