0

I have this query (dumping from another server)

CREATE TABLE [Reservation_reserve_room] (
  [id] int NOT NULL ,
  [reservation_id] int NULL ,
  [room_id] int NULL ,
  [room_name] varchar(255) NULL ,
  [reserve_date] date NULL ,
  [reserve_time_start] time(7) NULL ,
  [reserve_time_end] time(7) NULL 
)

INSERT INTO [Reservation_reserve_room] 
VALUES (N'1', N'1', N'1', N'Monday Room Sermmit', N'2012-03-12', 0x30373A30303A30302E30303030303030, 0x30383A30303A30302E30303030303030);

But when execute it, it has this error

[Err] 42000 - [SQL Server]Implicit conversion from data type varbinary to time is not allowed. Use the CONVERT function to run this query.

How do i fix it?

4

4 に答える 4

1

使用する

CONVERT(time,CONVERT(varchar,0x30373A30303A30302E30303030303030))

幸運を

于 2012-05-16T10:40:44.420 に答える
0

使用するCONVERT

CONVERT(TIME, CONVERT(BIGINT, 0x30373A30303A30302E30303030303030))

または単に

CONVERT(TIME, 0x0000E0FF01E0FF01E0FF01E0FF01E0FF0100000000)


    INSERT INTO [Reservation_reserve_room] VALUES (N'1', N'1', N'1', N'Monday Room Sermmit', N'2012-03-12',  CONVERT(time, 0x30373A30303A30302E30303030303030)
,  CONVERT(time, 0x30373A30303A30302E30303030303030));

MSDNでこのドキュメントを読む

于 2012-05-16T10:30:47.243 に答える
0

テーブルの時間フィールドに入力している値は無効です。

Cast(Value as Time)時間への変換に使用

INSERT INTO [Reservation_reserve_room] VALUES (N'1', N'1', N'1', N'Monday Room Sermmit',
N'2012-03-12', cast(0x30373A30303A30302E30303030303030 as  Time),
CAST( 0x30383A30303A30302E30303030303030 as  Time));
于 2012-05-16T10:27:50.813 に答える
0

私が知っている時間形式は、SQL で常に受け入れられているのは「2012 年 3 月 12 日」です。この形式は、多くの DB タイプに適しており、日付と月の数字を混同しません。

于 2012-05-16T10:28:40.940 に答える