我有一种方法,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
值而没有毫秒,这就是比较失败的原因。我也需要得到几毫秒。
我该如何管理?
答案 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 Community
和Enterprise
版本中。
***需要额外的小规模定制