2

現在の時刻を取得して SQL サーバーに入力するにはどうすればよいですか。私のテーブルがあります:

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.

私は何を間違っていますか?

4

1 に答える 1

3

SQL Servergetdate()関数を使用できます。

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

また

insert into Audit (StartTime, . . .) values (getdate(), . . .)
于 2013-09-06T15:26:28.723 に答える