环境

Django 2.2

Mysql 5.7

问题

不管如何设置时间格式,数据库字段保存都有微秒(我的需求是去掉微秒),如下图

#models中定义字段

exetime = models.DateTimeField(auto_now_add=True,verbose_name='执行时间')

期间尝试了修改setings.py

DATETIME_FORMAT="%Y-%m-%d%H:%M:%S"

L10N=False

USE_TZ=False

还尝试了直接修改model

#这个应该在mysql5.6以下可用

import datetime

exetime = models.DateTimeField(auto_now_add=datetime.datetime.now().strftime('%Y-%m-%d %H:%I:%S'),verbose_name='执行时间')

以上种种皆不可行

解决

最终发现,由于django默认对mysql5.7创建datetime字段时为datetime(6),数据库保存的就一定包含微秒,所以想到两种方式,第一种改源码,把默认映射改为datetime,第二种手动更改对应数据库字段

我使用第二种手动更改数据库字段为datetime后满足需求

如果使用第一种可以参考查看这个文件:django\db\backends\mysql\base.py

class DatabaseWrapper(BaseDatabaseWrapper):

vendor = 'mysql'

display_name = 'MySQL'

# This dictionary maps Field objects to their associated MySQL column

# types, as strings. Column-type strings can contain format strings; they'll

# be interpolated against the values of Field.__dict__ before being output.

# If a column type is set to None, it won't be included in the output.

data_types = {

'AutoField': 'integer AUTO_INCREMENT',

'BigAutoField': 'bigint AUTO_INCREMENT',

'BinaryField': 'longblob',

'BooleanField': 'bool',

'CharField': 'varchar(%(max_length)s)',

'DateField': 'date',

'DateTimeField': 'datetime(6)', #默认为6

'DecimalField': 'numeric(%(max_digits)s, %(decimal_places)s)',

'DurationField': 'bigint',

'FileField': 'varchar(%(max_length)s)',

'FilePathField': 'varchar(%(max_length)s)',

'FloatField': 'double precision',

'IntegerField': 'integer',

'BigIntegerField': 'bigint',

'IPAddressField': 'char(15)',

'GenericIPAddressField': 'char(39)',

'NullBooleanField': 'bool',

'OneToOneField': 'integer',

'PositiveIntegerField': 'integer UNSIGNED',

'PositiveSmallIntegerField': 'smallint UNSIGNED',

'SlugField': 'varchar(%(max_length)s)',

'SmallIntegerField': 'smallint',

'TextField': 'longtext',

'TimeField': 'time(6)',

'UUIDField': 'char(32)',

}

mysql 去除微秒_Django2.2-DateTimeField去掉微秒相关推荐

  1. mysql 去除全角空格_去掉全角空格

    有时候复制网上的代码会出现编译不通过的问题,报类似这样的一个问题:error: stray '\161' in program.在网上查了一下,就是全角空格的问题.借助于网上的一段Java代码,把它转 ...

  2. mysql 时间类型精确到毫秒、微秒及其处理

    下面是转载的关于MySQL毫秒.微秒精度时间处理的两段篇章,留给自己和供大家参考~~ 一.MySQL 获得毫秒.微秒及对毫秒.微秒的处理 MySQL 较新的版本中(MySQL 6.0.5),也还没有产 ...

  3. mysql去除重复数据

    mysql去除重复数据 根据one列查询重复的数据(根据单列判断重复) SELECT * FROM tab_test  WHERE ONE IN (SELECT ONE FROM testdelete ...

  4. MySQL 去除字符串中的括号以及括号内的内容

    MySQL 去除字符串中的括号以及括号内的内容 update 表 set 列名 = REPLACE(列名,SUBSTRING(列名 , LOCATE( '(',列名) , LOCATE(')',列名) ...

  5. MySQL去除字段的空白符

    mysql 去除空白符: update 表名 set 字段 = TRIM(字段); mysql 去除 特殊字符(制表符.换行符.回车)导致的空白: update 表名 set 字段 = replace ...

  6. ABAP 去除字符串某个字段(去掉的金额逗号例子)

    ABAP 去除字符串某个字段(去掉的金额逗号例子) 实际程序中,我们有很多需求是要把excel的数据导入SAP数据之中去,但是这金额是带有千分位逗号的,比如(2,602,568.71)如果要把这个值赋 ...

  7. mysql 去除微秒_mysql的微秒补丁 - sihanjishu的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    最近做一个项目的性能测试,是涉及算法相关的.整个项目由c++开发.读文件,写数据库,查询网络接口,写数据.蛮简单. 不过发现了2个性能问题.解决过程中,折腾了不少,其中用到了一个mysql的性能排查方 ...

  8. mysql 去除微秒_MySQL 关于毫秒和微秒的处理,MySQL获取毫秒!

    很多从ORACLE 或者 SQL SERVER 移植到 MySQL 的朋友都遇到一个相同的问题,就是关于毫秒的存储与显示. 由于MySQL 的只提供了DATETIME, TIMESTAMP, TIME ...

  9. mysql 去除重复 Select中DISTINCT关键字的用法(查询两列,只去掉重复的一列)

    在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的 ...

最新文章

  1. android 设置setmultichoiceitems设置初始化勾选_阿里巴巴Java开发手册建议创建HashMap时设置初始化容量,但是多少合适呢?...
  2. tensorflow学习函数笔记
  3. while循环,递进,linux按行读入并按数组存储
  4. python123登录网页版_Python模拟登录验证码(代码简单)
  5. java自制缓冲池_java String 缓冲池概念的举例说明
  6. 0/1背包问题-----动态规划求解
  7. 你们是不是对QQ总在后台莫名其妙更新一些东西很反感
  8. Java命令行界面(第25部分):JCommando
  9. Python_异常和模块
  10. Vaughn Vernon谈云原生和反应式现状
  11. ado.net mysql 转义_ADO.NET数据库查询
  12. 美图手机告别文,写得真好!
  13. 短视频APP测试要点
  14. 代码时间换空间以及空间换时间
  15. 微服务的技术架构路线
  16. 禅道 upgrade.php,禅道升级,添加钉钉通知
  17. html5弹性盒做成骰子,弹性盒制作骰子
  18. python opencv轮廓检测_python opencv 来对图片(苹果)的轮廓(最大轮廓进行识别)进行...
  19. 强力推荐—20款免费备份文件软件
  20. 水星WM150U无线网卡开机掉驱动的解决方法

热门文章

  1. 【项目分享】无线充电项目!!!
  2. 北理工和吉大计算机研究生就业,实力强劲就业率高的五所985大学,吉林大学最委屈,经常被忽视掉...
  3. 互联网公司没有中年人
  4. C语言中的数据类型及相关数据操作
  5. 快速性心律失常消融手术的增强现实导航系统
  6. ctfshow-菜狗杯-crypto(1-4)
  7. 一种修改MCU主频的方法:类观察者模式
  8. Linux系统引导过程(BIOS和Bootloader部分)
  9. 多目标优化算法平台PlatEMO的基本使用方法
  10. 图像风格迁移做了一件文化衫-【布尔艺数】