Dynamics CRM - 夏令时

时间:2011-04-14 08:51:01

标签: dynamics-crm dynamics-crm-4

夏令时在3月27日在爱尔兰开始。从那时起,任何已添加到Dynamics的记录都将任何日期字段设置为落后于实际添加时间的一小时。

奇怪的是,Web UI正确返回日期,而使用SQL Server和XRM查询则错误地返回日期。

服务器计算机上的时间设置是正确的,我已经安装了汇总16,还有什么我可以尝试的吗?

谢谢,

大卫

3 个答案:

答案 0 :(得分:5)

Dynamics CRM以UTC格式存储所有日期时间值。

通过Web前端输入的所有数据在存储时自动转换为UTC,并在读取时转换回用户时区。

如果您使用的是Dynamics CRM Outlook客户端,则会使用Windows的时区设置。如果您使用Web客户端,它会在您的个人选项中使用时区设置。确保它是正确的。

SDK

SDK始终使用UTC作为日期,以任何方式转换它们。您有责任以适当的方式转换数据。但是,CrmDateTime类包含一些有用的方法和属性。

报告

确保您只访问FilteredViews(例如FilteredAccount,这是btw唯一支持使用的数据库)。日期字段会自动转换为正确的时区(根据用户设置)。如果您需要访问原始值,则可以使用 utc 后缀(createdon - > createdonutc)作为列。要根据用户/系统设置格式化日期值,您还可以在报告中访问这些设置。请参阅“Formatting Content

答案 1 :(得分:2)

还有两个随Dynamics CRM一起提供的UDF:

fn_UTCToLocalTime(@dateTime)
fn_LocalTimeToUTC(@dateTime)

这些使用系统用户声明的时区转换为UTC或来自UTC,并考虑DST。

答案 2 :(得分:0)

似乎我的问题是通过将DateTime值从UTC转换为本地时间来解决的。

(我希望将ckeller的评论标记为答案,但似乎没有办法做到这一点。非常感谢ckeller。)