Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 如何正确地将exto.DateTime值强制转换为utc_DateTime字段?_Elixir_Ecto - Fatal编程技术网

Elixir 如何正确地将exto.DateTime值强制转换为utc_DateTime字段?

Elixir 如何正确地将exto.DateTime值强制转换为utc_DateTime字段?,elixir,ecto,Elixir,Ecto,我有多个包含类型为:utc\u datetime的字段的EXTO表模式。当我读取其中一个表时,我会返回:utc_DateTime列的exto.DateTime值。当使用这些值之一创建变更集以将其写回表中时,我在生成变更集的函数中包含了对|>cast(params,[:my_utc_datetime_field]的调用,但cast失败,错误设置为[my_utc_datetime_field:{“is invalid”,[type::utc_datetime,validation::cast]} 当

我有多个包含类型为
:utc\u datetime
的字段的EXTO表模式。当我读取其中一个表时,我会返回
:utc_DateTime
列的
exto.DateTime
值。当使用这些值之一创建变更集以将其写回表中时,我在生成变更集的函数中包含了对
|>cast(params,[:my_utc_datetime_field]
的调用,但cast失败,错误设置为
[my_utc_datetime_field:{“is invalid”,[type::utc_datetime,validation::cast]}

当我创建变更集时,我可以手动添加函数调用来将
exto.DateTime
值转换为不同的类型,但是这看起来很笨重而且容易出错,我觉得
exto.changeset.cast
的全部目的就是为我做这些类型的转换。而且,当exto返回
当我查询列时,使用exto.DateTime
值,但不能使用相同的值将相同的数据写回同一列

这里有什么我遗漏的吗?这个演员阵容失败是因为我试图做一些愚蠢的事情,还是这个功能到目前为止还没有实现,或者


我还应该注意到,我正在使用一个自定义的第三方数据库适配器。我突然想到,可能它不应该首先为
:utc\u DateTime
列返回
exto.DateTime
值,并且可能需要修复适配器以将这些列转换为不同的类型。请大家澄清一下这里提供将非常有帮助,非常感谢。

是的,
:utc_datetime
应该返回Elixir的新的原生
datetime
结构,它将正确地与
cast
一起工作。问题可能出在适配器中。你能链接到你正在使用的适配器吗?@Dogbert谢谢!我编辑了我们的适配器和所有内容现在工作得很好。这仍然是一项正在进行的工作,所以我们还没有为它的发布做任何重大的宣布,但我们确实在这里提供了源代码,以防您有兴趣体验一下高峰: