【发布时间】:2017-12-28 16:19:27
【问题描述】:
我有一个方法,其中self 是一个简单的stock.move 记录。此外,您可能知道,stock.move 模型有一个名为date 的Datetime 字段。如果我在方法中编写这段代码:
lines = self.search([
('date', '=', self.date),
])
它应该至少返回当前行。它确实如此,但仅限于某些服务器。其他人什么都不返回。为什么?因为如果我在 PostgreSQL 中查询date,运行正常的服务器返回2017-12-27 17:10:00,但是,运行错误的服务器返回2017-12-27 17:10:00.131112。因此,对于毫秒级的情况,ORM search 方法正在这样做:
lines = self.search([
(2017-12-27 17:10:00.131112, '=', 2017-12-27 17:10:00),
])
self.date 正在返回不带毫秒的 Datetime 值,这就是比较失败的原因。我也需要得到毫秒数。
我该如何管理?
【问题讨论】:
-
其实我认为
create_date和write_date字段应该有毫秒。Datetime字段不应该有,因为使用了DEFAULT_SERVER_DATETIME_FORMAT常量。所以我不知道你的情况发生了什么
标签: python postgresql python-2.7 odoo-8 odoo