java - 字符串或二进制数据将在输入数据库时​​被截断

标签 java sql sql-server

如何获取当前时间并将其输入到 SQL Server 中。这是我的 table :

CREATE TABLE [dbo].[Audit](
    [PK_Audit] [int] IDENTITY(1,1) NOT NULL,
    [SequenceNumber] [int] NOT NULL,
    [TableName] [varchar](50) NOT NULL,
    [RunDate] [datetime] NOT NULL,
    [StartTime] [datetime] NOT NULL,
    [EndTime] [datetime] NOT NULL,
    [Description] [varchar](max) NULL,
    [Status] [varchar](50) NOT NULL,
    [ProcessName] [nchar](10) NOT NULL,
    [InsertCount] [int] NOT NULL,
    [UpdateCount] [int] NULL,
    [DeleteCount] [int] NULL,
 CONSTRAINT [PK_Audit] PRIMARY KEY CLUSTERED 
(
    [PK_Audit] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

我正在尝试使用 calander 获取时间并将其输入数据库:

Calendar cal = Calendar.getInstance();
java.util.Date start = cal.getTime();

对我来说,您似乎需要将其转换为 SQL 可以理解的内容,因此我执行了以下操作:

audit.setDate(4, new java.sql.Date(start.getTime()));

当我执行查询时,出现以下错误:

com.microsoft.sqlserver.jdbc.SQLServerException: String or binary data would be truncated.

我做错了什么?

最佳答案

您可以使用 SQL Server getdate()功能:

update Audit set StartTime=getdate(), . . . where . . .

insert into Audit (StartTime, . . .) values (getdate(), . . .)

关于java - 字符串或二进制数据将在输入数据库时​​被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18661155/

相关文章:

java - hibernate中4个表的关联

java - 如何在 JAX-WS 客户端中实现 SOAP 处理程序

mysql - 如何选择与值列表中的每个值配对的值

sql-server - 带有连接字符串的 SQLCmd

sql-server - 使用 sp_executesql 阻止 SSMS 编写 SP 脚本?

java - 代号一,捕获音频

java - 如何在 Eclipse Helios 中设置 JFrame 或 JPanel 背景图片

MySQL:更改列类型和日期时间格式

MySQL 错误 : Unknown column in 'where clause'

sql - 用什么替换 View 中的左连接以便我可以拥有索引 View ?