环境:django 1.9.7

背景介绍

django migrate 生成表结构时,对于DateTimeField 类型的处理是加了6位精度的,只用django处理是没有任何问题的,但是如何别的框架来读取这种字段会读取不到该字段值。

参考链接

详情

跟踪调试发现如下东西

在文件: django/db/backends/mysql/base.py line:184

data_types 方法有如下代码:

    @cached_property
    def data_types(self):
        if self.features.supports_microsecond_precision:
            return dict(self._data_types, DateTimeField='datetime(6)', TimeField='time(6)')
        else:
            return self._data_types

知道了这些后,我们只需要将 datetime(6) 修改为 datetime  就能在数据库表创建时不指定DATETIME的精度了


mugbya
1.2k 声望41 粉丝

时间永远分岔,通往无数未来