从Azure流分析将数据插入Azure SQL数据库表时出现'OutputDataConversionError.TypeConversionError'

时间:2019-05-23 02:13:14

标签: sql-server azure azure-sql-database

我正在尝试学习Azure IoT。我正在尝试将MQTT消息发送到IoT中心。从物联网中心,我正在使用流分析将数据输出到SQL数据库。但目前在Streaming Analytics输出中,我遇到此错误:

  

[9:12:30 AM]在处理时间'2019-05-23T01:12:30.5631321Z'和'2019-05-23T01:12之间,源'OUTPUTSQL'出现了1种类型'OutputDataConversionError.TypeConversionError': 30.5631321Z'。

这是我要保存的数据

  

{“ ActionBy”:“ admin”,“ ActionDate”:“ 2019-05-22T16:00:00.0000000”,“ Topic”:“ IoT”,“ Message”:“ Hello World”,“ QoS”:“ 1“,” EventProcessedUtcTime“:” 2019-05-23T00:19:31.8287610Z“,” PartitionId“:0,” EventEnqueuedUtcTime“:” 2019-05-23T00:19:31.7170000Z“,” IoTHub“:{” MessageId “:null,” CorrelationId“:null,” ConnectionDeviceId“:” hartaMQTT-Device01“,” ConnectionDeviceGenerationId“:” 636936650733289038“,” EnqueuedTime“:”“ 2019-05-23T00:19:31.6820000Z”,“ StreamId”:null }}

我认为错误在于IoTHub部分。

这是我要保存的Azure Sql Server中的表:

CREATE TABLE [dbo].[IoTMQTT](
[EventID] [bigint] IDENTITY(1,1) NOT NULL,
[ActionBy] [nvarchar](400) NOT NULL,
[ActionDate] [datetime] NOT NULL,
[Topic] [nvarchar](400) NULL,
[Message] [nvarchar](400) NULL,
[QoS] [nvarchar](400) NULL,
[EventProcessedUtcTime] [datetime] NULL,
[PartitionId] [nvarchar](400) NULL,
[EventEnqueuedUtcTime] [datetime] NULL,
[IoTHub] [nvarchar](max) NULL,
)

出什么问题了?是数据类型吗?请帮我。谢谢!

1 个答案:

答案 0 :(得分:1)

Azrue SQL数据库可以将“ 2019-05-23T00:19:31.8287610Z”转换为datetime2smalldatetimetimedate,除了{{1} }。这是错误消息: enter image description here

根据您的数据,我认为数据类型datetime最适合您。 enter image description here

请修改表,将ActionDate,EventProcessedUtcTime,EventEnqueuedUtcTime列更改为datetime2

希望这会有所帮助。