2017-06-20 49 views
0

你好家伙这是我有以下查询,我试图将二进制(8)转换为日期时间,但我得到以下错误。错误信息转换日期和/或时间从字符串转换失败

从字符串转换日期和/或时间时转换失败。

您能否帮我解决。

DECLARE @VarBinary VarBinary(10) 
DECLARE @DateTime DATETIME 

SET @VarBinary = CAST(CAST('1998/01/24' AS DATETIME) AS VARBINARY(10)) 
SET @DateTime = @VarBinary 

SELECT TOP 1000 [NodeId],[NodePropertyId],[NodePropertyValue],convert(datetime2, [TStamp]),[Source],[LoadDate] 
FROM [Fleet_Staging].[dbo].[rdex_NodePropertyValues] 
+0

推测一个或多个'[TSt amp]'不能转换为'datetime2' - 查询本身甚至没有使用@ DateTime/@ VarBinary –

回答

0

确保[TStamp]是正确的,如果事情是错的,你可以得到这个error.For下面的示例代码给出同样的错误。从字符串变换日期和/或时间时

SELECT CONVERT(datetime2, '2011-09-28 18:01:00 xxx') 

转换失败。

+0

我试图转换下面的select语句,但它说不能转换和我尝试的列名转换为[TStamp]。 SELECT TOP 1000 [的NodeId] ,[NodePropertyId] ,[NodePropertyValue] ,转换(DATETIME2,[TSTAMP]), [来源],[LoadDate] FROM [Fleet_Staging] [DBO]。[rdex_NodePropertyValues] – user2260994

0

错误之前[TSTAMP]

有一个在英语中没有错误

DECLARE @VarBinary VarBinary(10) 
DECLARE @DateTime DATETIME 
SET LANGUAGE English 
SET @VarBinary = CAST(CAST('1998/01/24' AS DATETIME) AS VARBINARY(10)) 
SET @DateTime = @VarBinary 
SELECT @VarBinary 

如果我更改语言;土耳其语与你有同样的错误。

DECLARE @VarBinary VarBinary(10) 
DECLARE @DateTime DATETIME 
SET LANGUAGE Turkish 
SET @VarBinary = CAST(CAST('1998/01/24' AS DATETIME) AS VARBINARY(10)) 
SET @DateTime = @VarBinary 
SELECT @VarBinary 

VARCHAR VERItüründen井日期时间VERItürünedönüştürmearalıkDISI井değerlesonuçlandı。

使用convert功能See Microsoft Page OR W3 Schools Page

DECLARE @VarBinary VarBinary(10) 
DECLARE @DateTime DATETIME 
SET LANGUAGE Turkish 
SET @VarBinary = CAST(convert(DATETIME, '1998/01/24',111) AS VARBINARY(10)) 
SET LANGUAGE English 
SET @VarBinary = CAST(convert(DATETIME, '1998/01/24',111) AS VARBINARY(10)) 
SET @DateTime = @VarBinary 
SELECT @VarBinary 

没有错误

0
set dateformat YMD 

之前设置@Varbinary = CAST(转换....

应该作品!:)

相关问题