django DateTimeField 到 mysql DATETIME 长度问题,默认是6位

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z564359805/article/details/86586003

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的精度了

或者直接在数据库中修改字段长度:

猜你喜欢

转载自blog.csdn.net/z564359805/article/details/86586003
今日推荐