【发布时间】:2020-12-09 14:00:58
【问题描述】:
我正在与客户合作,通过数据工厂将日期记录从 Dynamics 365 传输到 Azure SQL Server,以便进一步传输到外部系统。
客户已将其 Dynamics 365 实例设置为日期字段遵循“UserLocal”行为,而不是“DateOnly”,这将是文档中建议的选项:
由于建立在此之上的业务逻辑,他们无法更改此行为。
当我们将这些日期行传输到 Azure SQL Server 时,我们会得到由系统时区 (UTC) 调整的日期值,这对我们来说相差 -1 小时(我们的时区是 UTC +1)。这会导致我们在 SQL 表中得到不正确的日期。
有没有一种方法可以轻松地在 Azure 数据工厂中针对以 Common Data Service 连接器作为源、SQL Server 作为接收器的复制管道进行调整?日期值作为字符串值转换为 SQL Server。
提前感谢您,我期待您对上述内容的看法!
【问题讨论】:
-
SQL Azure 托管实例可以设置时区。另外,您可以使用 SQL Server/SQL Azure 中的 datetimeoffset 类型来尝试对类型中的时区进行编码。
-
感谢您的快速回复!我会试一试并报告。
-
感谢您的提示,我能够使用本地时区创建视图。有没有办法在本地时间显示 datetimeoffset 值?所以不是 2021-01-13 23:00:00.000 +01:00” 得到“2021-01-14 00:00:00.000”?再次感谢您的帮助和欢呼!
-
我不知道如何让它从 datetimeoffset 在 SQL DB 中显示本地时间。如果您知道该数据库仅在一个时区使用,您可以使用 dateadd 或类似方法对我在视图中假设的进行硬编码。
-
嗨@thereceptionist,感谢Connor 的帮助和您的另一个问题,我建议您发布一个新问题,让更多人可以帮助您。我只是总结了 cmets 并帮助 Conor 将其发布为答案,这可能对其他社区成员有益。谢谢。
标签: azure azure-sql-database dynamics-crm azure-data-factory microsoft-dynamics