Microsoft Dynamics CRM内部时钟(BD或IIS)?

时间:2017-02-06 16:08:54

标签: dynamics-crm microsoft-dynamics dynamics-crm-2016 dynamics-crm-365

我们有一个应用程序,它使用Dynamics CRM中的数据并执行一些查询以在特定日期和时间之后检索数据。

了解哪个时钟使用Dynamics CRM设置其记录的日期非常重要。例如,当它创建一个新机会时,创建日期来自哪个?

日期和时间是否基于运行CRM的Web服务器的时钟,它是基于存储CRM数据库的SQL Server,还是其他?

4 个答案:

答案 0 :(得分:2)

我从未见过有关此问题的任何实际文档。我可以通过查看SQL跟踪和CRM服务器DLL的一些反编译来推断以下内容。

我不确定在Dynamics CRM中是否有单一方式生成日期/时间值。

例如,有一个存储过程来创建一个WebResource,它使用SQL Server的函数来获取时间。在这种情况下,时间将是托管SQL的服务器的时钟时间。

创建/更新实体记录时不是这样。在这种情况下,时间作为INSERT命令的一部分传递。我不相信CRM正在调用SQL Server的时间,因此这次来自CRM Web前端服务器(如果创建/更新操作异步发生,则来自异步服务器。).NET提供了UTC时间值,我不认为在创建和更新中填充这些值时会发生显式的时间值转换。有一个明确的操作来删除毫秒部分。

如果您使用OverrideCreatedOn,那么该值完全取决于您(只要它在CRM可接受的范围内),但它会缩短毫秒数。

答案 1 :(得分:0)

当涉及到时间时,Dynamics CRM很简单:它只使用System.DateTime.Now属性,该属性读取服务器的内置时钟。

答案 2 :(得分:0)

查询CRM数据看起来只是第二次。如果你在CRM中创建了一些记录(没有覆盖已创建的),那么查询它们的创建日期,你会得到一些值(我使用ISO 8601 standardToString("o")格式化程序打印的地方):

  

2017-01-19T21:33:12.0000000Z
  2017-01-19T21:27:02.0000000Z
  2017-01-19T20:12:54.0000000Z

似乎还有一个开放的CrmIdea item to start recording milliseconds in these type of timestamps

答案 3 :(得分:0)

Dynamics CRM根据系统设置存储日期/时间。但是,如果将其存储在CRM数据库中,则根据SQL Server的Windows Server时间将其存储为UTC + 0.