gpt4 book ai didi

java - SQL Server 2008 日期时间列 JDBC 插入问题

转载 作者:行者123 更新时间:2023-11-29 03:59:08 25 4
gpt4 key购买 nike

我有一个表,其中有一列是 DATETIME在 SQL Server 2008 数据库中。插入的日期不是时间戳,因为在插入时使用 NOW 是可以接受的。日期是在插入之前生成的,我想保留这个值。

日期时间被序列化为格式为 yyyy-mm-dd hh:mm:ss.[fff...] 的字符串然后在插入之前转换为 JDBC Timestamp 对象。

我在使用 SQL Server 时遇到的一个问题是它在插入之前将值转换为 TIMESTAMP,然后提示:

com.microsoft.sqlserver.jdbc.SQLServerException: 
Cannot insert an explicit value into a timestamp column.
Use INSERT with a column list to exclude the timestamp column,
or insert a DEFAULT into the timestamp column.

如何在不进行转换的情况下直接插入 DATETIME 列?

谢谢。

最佳答案

SQL Server TIMESTAMP 数据类型不是类似日期的数据类型。它是服务器生成的值,用于帮助实现数据一致性。如果要存储日期时间数据,请避免使用 TIMESTAMP 数据类型。

因此,不要转换为 JDBC Timestamp 对象。数据可以作为字符串值插入。请注意,您指定的格式是可以的,但是 fff... 必须是 3 位数字,对于 SQL Server DATETIME 数据类型,不能超过 3 位数字。

关于java - SQL Server 2008 日期时间列 JDBC 插入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4558400/

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