Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server数据插入_Sql Server - Fatal编程技术网

Sql server SQL Server数据插入

Sql server SQL Server数据插入,sql-server,Sql Server,我有此查询(从其他服务器转储) 但是当执行它时,它有这个错误 [Err]42000-[SQL Server]不允许从数据类型varbinary隐式转换为时间。使用CONVERT函数运行此查询 如何修复它?您在“时间”字段的表格中输入的值无效 使用Cast(值为时间)转换为时间 INSERT INTO [Reservation_reserve_room] VALUES (N'1', N'1', N'1', N'Monday Room Sermmit', N'2012-03-12', cast(0x

我有此查询(从其他服务器转储)

但是当执行它时,它有这个错误

[Err]42000-[SQL Server]不允许从数据类型varbinary隐式转换为时间。使用CONVERT函数运行此查询


如何修复它?

您在“时间”字段的表格中输入的值无效

使用
Cast(值为时间)
转换为时间

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

我知道SQL中接受的时间格式始终是“2012年3月12日”。
此格式适用于许多DB类型,不会混淆日期和月份。

使用
转换

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));
请在使用时阅读本文档

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

祝您好运

“如何修复?”-使用转换函数…
使用转换函数运行此查询。
。简单。什么是
0x30373A30303A330302E30303033030
?毫秒、秒或其他?当您插入
INT
列时-只需使用数值,例如
1
-不要将您的数字转换为
NVARCHAR
字符串(
N'1'
),然后再返回-无需任何费用。。。。。另外:如果在
VARCHAR
列中插入(
room_name
)-不要使用
N'.
前缀-同样,首先转换为
NVARCHAR
(为什么?),然后SQL Server需要转换回
VARCHAR
,因为这是列数据类型…..问题是如何修复它,不是他们为什么会出错。这真的不值得投否决票,知道错误发生的原因是纠正错误和理解解决方案的第一步。@Ash Burlaczenko,请告诉我如何将无效的datetime从代码转换为有效的datetime。出现错误:从字符串转换日期和/或时间时转换失败。请在有有效数据时尝试查询。请告诉我们此数据的来源。我发现将表达式转换为数据类型datetime时出现算术溢出错误。
什么是0x30373A30303A330302E30303030303030。在第二个/新查询中,当将datetime从binary/varbinary字符串转换为datetime时,它抛出
转换失败。
是否确定存储在0x30373A30303A330302E30303033030是datetime?请参见编辑后的答案..我已将datetime更改为时间数据类型我从binary/varbinary字符串转换datetime时获得的转换失败。但我在发布它之前测试了它,它正常工作!我在MS SQL SERVER 2008 R2上进行了测试。
CONVERT(time,CONVERT(varchar,0x30373A30303A30302E30303030303030))