【问题标题】:Azure Data Factory HTTP endpoint to CosmosDB error converting datetimeAzure 数据工厂 HTTP 端点到 CosmosDB 错误转换日期时间
【发布时间】:2019-02-14 12:47:15
【问题描述】:

我有一个 HTTP 端点,它返回包含日期时间的数据,格式如下:

"RowInsertDateTime": "2018-09-10T15:31:21.223",

由于此错误,我的数据工厂管道无法将此行作为 DATETIME 导入:

"message": "ErrorCode=UserErrorInvalidDataValue,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=,Source=,''Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Column

'RowInsertDateTime' 包含无效值 '2018-09-10T15:39:50.33'。无法将“2018-09-10T15:39:50.33”转换为 使用格式输入“日期时间” 'YYYY-MM-DDTHH:MM:SS'.,Source=Microsoft.DataTransfer.Common,''Type=System.FormatException,Message=String 未被识别为有效的 DateTime.,Source=mscorlib,''Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Column “RowInsertDateTime”包含无效值 '2018-09-10T15:39:50.33'。无法将“2018-09-10T15:39:50.33”转换为 使用格式输入“日期时间” 'YYYY-MM-DDTHH:MM:SS'.,Source=Microsoft.DataTransfer.Common,''Type=System.FormatException,Message=String 未被识别为有效的 DateTime.,Source=mscorlib,''Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Column “RowInsertDateTime”包含无效值 '2018-09-10T15:39:50.33'。无法将“2018-09-10T15:39:50.33”转换为 使用格式输入“日期时间” 'YYYY-MM-DDTHH:MM:SS'.,Source=Microsoft.DataTransfer.Common,''Type=System.FormatException,Message=String 未被识别为有效的 DateTime.,Source=mscorlib,''Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Column “RowInsertDateTime”包含无效值 '2018-09-10T15:39:50.33'。无法将“2018-09-10T15:39:50.33”转换为 使用格式输入“日期时间” 'YYYY-MM-DDTHH:MM:SS'.,Source=Microsoft.DataTransfer.Common,''Type=System.FormatException,Message=String 未被识别为有效的 DateTime。,Source=mscorlib,'",

我尝试设置格式为 YYYY-MM-DDTHH:MM:SS,但同样失败。有任何想法吗?我认为日期时间格式是有效的。

【问题讨论】:

    标签: datetime-format azure-data-factory azure-data-factory-2


    【解决方案1】:

    我看到你的日期有毫秒,所以你可以尝试使用这种格式“yyyy-MM-ddTHH:mm:ss.fff”

    【讨论】:

    • 无法将“2018-09-03T00:00:47.02”转换为“yyyy-MM-ddTHH:mm:ss.fff”格式的“DateTime”。,Source=Microsoft.DataTransfer.Common ,''Type=System.FormatException,Message=String 未被识别为有效
    • 第一个参数包含 3 位毫秒,因为我放了 .fff。在您的评论中,您只有 .02 ,这意味着您需要放置 .ff 如果您的 DateTime 格式不是恒定的,您可以让他在没有指定格式的情况下解析它。检查文档docs.microsoft.com/en-us/dotnet/standard/base-types/…
    • 毫秒的长度可能会有所不同,但是不指定格式解析它是什么意思?如果我这样做,它仍然会失败(如果我没有设置格式),这就是导致我首先尝试格式化的原因!这是没有格式化的错误 - Message=Column 'RowInsertDateTime' 包含无效值 '2018-09-03T00:00:47.02'。无法将“2018-09-03T00:00:47.02”转换为“yyyy-MM-dd HH:mm:ss.fffffff”格式的“DateTime”。,Source=Microsoft.DataTransfer.Common,''Type=System。 FormatException,Message=String 未被识别为有效的 DateTime
    • 哦对了,如果不指定格式,它会使用默认格式,即“o”。
    • 嗯。好的。所以如果我不指定格式,它就不起作用。如果我指定您建议的格式,它将不起作用。那么,我在这里的选择是什么?如果有什么? ://
    猜你喜欢
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 2019-03-09
    • 2021-03-18
    相关资源
    最近更新 更多