【问题标题】:createdon field date-time formatcreatedon 字段日期时间格式
【发布时间】:2012-05-29 23:23:57
【问题描述】:

编译以下 coe 总是会遇到同样令人沮丧的错误。我正在尝试将“createdon”字段与当前日期进行比较。我尝试了几种日期格式,但仍然无法正常工作...

错误详情:“23/05/2012 14:01:55 的日期时间格式无效”

代码sn-p:

DateTime d = DateTime.Now;
                String.Format("{0:dd/MM/YYYY HH:mm:ss}", d);

                FetchExpression fetch = new FetchExpression(@"
                    <fetch distinct='false' mapping='logical'>
                      <entity name='" + context.PrimaryEntityName + "'><filter type='and'><condition attribute='createdon' value='" + d + "' operator='ne'></condition></filter><link-entity name='new_contrats' alias='nombreligne' from='new_contratsid' to='new_contratsid'><filter type='and'><condition attribute='new_contratsid' value='" + contrats.Id + "' operator='eq'></condition></filter></link-entity></entity></fetch>");

任何帮助都会很棒!

【问题讨论】:

  • 我认为该值存储在 UTC 中,也许您需要使用 .ToUniversal().UtcNow() 将您的 DateTime 转换为 或者您应该尝试可排序的日期时间模式yyyy-MM-ddTHH:mm:ss
  • +1 for yyyy-MM-ddThh:mm:ss... 这就是我使用的。
  • 谢谢两位的回答,我已经尝试过.ToUniversal() 和.UtcNow(),只是尝试了可排序的日期时间模式,但仍然没有结果!

标签: c# plugins dynamics-crm-2011 fetchxml


【解决方案1】:

我的blog posting here 可能会有所帮助。基本上,UTC 格式但原始用户的本地偏移量可能会影响数据库中的基础值。

【讨论】:

  • 嗨,格雷格,感谢您的回答。我的问题是我无法更改运算符,我仍然找不到正确的格式!
  • 所以如果你使用UTC格式,你仍然会得到错误The date-time format for &lt;some-date&gt; is invalid ?
  • 是的,但我注意到错误消息中指示的时间与实际时间之间存在两个小时的差异......
  • 嗯,时差将是因为 UTC 和您的本地时间之间的偏移。我假设您在法国,因此该位置的当前偏移量占 2 小时。
  • 我不明白你是如何得到格式错误的。您可以在执行之前使用您的代码生成的完整 FetchXml 粘贴(到您的原始问题中)更新吗?
【解决方案2】:

使用 Linq to CRM 或查询表达式可能比 Fetch XML 更容易。由于您使用的是对象,因此您不必担心格式。

【讨论】:

  • 嗨达里尔!我对 Linq to CRM 或 Query 表达式不太满意。 msdn 是入门的好方法吗?或者你能给我一个好的网站或书吗?谢谢!
  • SDK 有大量示例。如果您还不知道 linq,那么我将专注于查询表达式。无论如何,linq 语句都会被转换为 QE,并且 linq 提供程序的 CRM 实施中存在一些问题。
  • 谢谢达里尔!那么我将从查询表达式开始!
猜你喜欢
  • 2013-02-02
  • 2016-01-22
  • 1970-01-01
  • 2019-11-20
  • 1970-01-01
  • 2014-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多