gpt4 book ai didi

Java:插入表日期时间数据

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:06:46 24 4
gpt4 key购买 nike

我正在尝试将当前日期和时间插入到 MS-SQL 数据库中的变量中。我使用这种格式:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); 
Calendar cal = Calendar.getInstance();
System.out.println(dateFormat.format(cal.getTime()));

结果是 2013-01-28 09:29:37.941

我在数据库中的字段定义为 datetime 并且正如我在具有相同字段的其他表中看到的那样,日期和时间的写法与此完全相同 2011-07-05 14:18 :33.000.

我尝试使用我在 java 程序中执行的查询插入到数据库中,但出现此错误

SQL Exception: State : S0003 Message: The conversion of a varchar data type to a datetime data type of the value is out of range. Error : 242

我的查询是这样的:

query = "INSERT INTO Companies CreatedOn"+ 
"VALUES ('" + dateFormat.format(cal.getTime()) + "')"

但我不明白我做错了什么。

最佳答案

根据error description ,您正在向数据库中插入不正确的类型。参见 JDBC to MSSQL .您应该将日历转换为 Timestamp .

尝试使用:

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();

关于Java:插入表日期时间数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14558289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com