Dim*_*cha 9 java sql sql-server datetime jdbc
我试图在MS-SQL数据库中插入一个变量当前的日期和时间.我用这种格式:
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));
Run Code Online (Sandbox Code Playgroud)
我得到了这个结果2013-01-28 09:29:37.941
我定义了数据库中的字段,datetime正如我在其他具有相同字段的表中看到的那样,日期和时间的编写方式与2011-07-05 14:18:33.000完全相同.
我尝试使用我在java程序中执行的查询插入数据库,但是我收到此错误
SQL异常:状态:S0003消息:将varchar数据类型转换为值的日期时间数据类型超出范围.错误:242
我的查询是这样的:
query = "INSERT INTO Companies CreatedOn"+
"VALUES ('" + dateFormat.format(cal.getTime()) + "')"
Run Code Online (Sandbox Code Playgroud)
但我不明白我做错了什么.
Tak*_*aky 18
根据错误描述,您将向数据库中插入不正确的类型.请参阅JDBC到MSSQL.您应该将日历转换为时间戳.
尝试使用:
PrepareStatement statement
= connection.prepareStatement("INSERT INTO Companies CreatedOn VALUES(?)");
java.sql.Timestamp timestamp = new java.sql.Timestamp(cal.getTimeInMillis());
statement.setTimestamp(1, timstamp);
int insertedRecordsCount = statement.executeUpdate();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72149 次 |
| 最近记录: |