为什么Odoo会删除Datetime字段中的毫秒数?

时间:2017-12-28 16:19:28

标签: python postgresql python-2.7 odoo-8 odoo

我有一种方法,self是一个简单的stock.move记录。此外,正如您所知,stock.move模型有一个名为Datetime的{​​{1}}字段。如果我在方法中编写此代码:

date

它应该至少返回当前行。它确实如此,但仅限于某些服务器。其他人什么都不回为什么?因为如果我在PostgreSQL中进行查询以获取lines = self.search([ ('date', '=', self.date), ]) ,那么正常工作的服务器将返回 2017-12-27 17:10:00 ,但是,工作错误的服务器返回 2017-12-27 17:10:00.131112 。因此,对于具有毫秒级的情况,ORM date方法正在执行此操作:

search

lines = self.search([ (2017-12-27 17:10:00.131112, '=', 2017-12-27 17:10:00), ]) 返回self.date值而没有毫秒,这就是比较失败的原因。我也需要得到几毫秒。

我该如何管理?

1 个答案:

答案 0 :(得分:1)

绝对正确,我在此确认odoo Datetime不保留UTC时间,它以UTC格式存储日期时间。即使从odoo 5.0开始,我们仍在努力,直至日期。

在Odoo 11.0

 id  |        create_date         |         write_date         |    date_expected    
-----+----------------------------+----------------------------+---------------------
  41 | 2017-12-21 13:06:06.927814 | 2017-12-21 13:06:06.927814 | 2017-12-21 13:01:30
   7 | 2017-12-21 08:33:22.431197 | 2017-12-21 08:33:22.431197 | 2017-12-21 08:31:54
  42 | 2017-12-21 13:07:03.659194 | 2017-12-21 13:07:03.659194 | 2017-12-21 13:06:54
   2 | 2017-12-21 07:24:24.953689 | 2017-12-21 07:24:24.953689 | 2017-12-21 07:24:25

是。 odoo create_date,write_date能够给你毫秒,可能对你有所帮助。但确定在Datetime,不允许这样做......

如果您需要真正基于毫秒的需求,附加字段将添加到存储毫秒,而不是它的全部工作。

问题仍存在于odoo CommunityEnterprise版本中。

***需要额外的小规模定制