sql-server - 从 Azure 流分析将数据插入 Azure SQL 数据库表时出现“OutputDataConversionError.TypeConversionError”

标签 sql-server azure azure-sql-database

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

[9:12:30 AM] Source 'OUTPUTSQL' had 1 occurrences of kind 'OutputDataConversionError.TypeConversionError' between processing times '2019-05-23T01:12:30.5631321Z' and '2019-05-23T01:12: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,
)

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

最佳答案

Azrue SQL 数据库可以将“2019-05-23T00:19:31.8287610Z”转换为 datetime2smalldatetimetime日期日期时间除外。这是错误按摩: enter image description here

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

请修改您的表格,将 ActionDate、EventProcessedUtcTime、EventEnqueuedUtcTime 列更改为 datetime2

希望这有帮助。

关于sql-server - 从 Azure 流分析将数据插入 Azure SQL 数据库表时出现“OutputDataConversionError.TypeConversionError”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56267217/

相关文章:

mysql - Windows 手机 8.1 : Need suggestion on what database should I use

sql - 使用 Azure SQL 跨数据库查询

azure - 如何从 C# 或 Microsoft.Azure.Management 删除应用程序服务 -> Web 应用程序 -> 日志文件

c# - 无法使用 Azure SQL Elastic Sc​​ale 删除分片映射

sql-server - 免费云存储来托管 MS Sql

php - 如何在 MSSQL 中存储和检索扩展的 ASCII 字符

c# - 在 Datagridview 中显示数据库搜索结果

sql-server - 如何在 SQL Server 2000 中传递大于 varchar(8000) 的字符串参数?

azure - 如何在命令行上获取用于服务身份验证的 AzureAD JWT

AzureDevOps - 将订阅移动到不同的 AD 后无法获取访问 token