mysql 去除微秒_Django2.2-DateTimeField去掉微秒
环境
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去掉微秒相关推荐
- mysql 去除全角空格_去掉全角空格
有时候复制网上的代码会出现编译不通过的问题,报类似这样的一个问题:error: stray '\161' in program.在网上查了一下,就是全角空格的问题.借助于网上的一段Java代码,把它转 ...
- mysql 时间类型精确到毫秒、微秒及其处理
下面是转载的关于MySQL毫秒.微秒精度时间处理的两段篇章,留给自己和供大家参考~~ 一.MySQL 获得毫秒.微秒及对毫秒.微秒的处理 MySQL 较新的版本中(MySQL 6.0.5),也还没有产 ...
- mysql去除重复数据
mysql去除重复数据 根据one列查询重复的数据(根据单列判断重复) SELECT * FROM tab_test WHERE ONE IN (SELECT ONE FROM testdelete ...
- MySQL 去除字符串中的括号以及括号内的内容
MySQL 去除字符串中的括号以及括号内的内容 update 表 set 列名 = REPLACE(列名,SUBSTRING(列名 , LOCATE( '(',列名) , LOCATE(')',列名) ...
- MySQL去除字段的空白符
mysql 去除空白符: update 表名 set 字段 = TRIM(字段); mysql 去除 特殊字符(制表符.换行符.回车)导致的空白: update 表名 set 字段 = replace ...
- ABAP 去除字符串某个字段(去掉的金额逗号例子)
ABAP 去除字符串某个字段(去掉的金额逗号例子) 实际程序中,我们有很多需求是要把excel的数据导入SAP数据之中去,但是这金额是带有千分位逗号的,比如(2,602,568.71)如果要把这个值赋 ...
- mysql 去除微秒_mysql的微秒补丁 - sihanjishu的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
最近做一个项目的性能测试,是涉及算法相关的.整个项目由c++开发.读文件,写数据库,查询网络接口,写数据.蛮简单. 不过发现了2个性能问题.解决过程中,折腾了不少,其中用到了一个mysql的性能排查方 ...
- mysql 去除微秒_MySQL 关于毫秒和微秒的处理,MySQL获取毫秒!
很多从ORACLE 或者 SQL SERVER 移植到 MySQL 的朋友都遇到一个相同的问题,就是关于毫秒的存储与显示. 由于MySQL 的只提供了DATETIME, TIMESTAMP, TIME ...
- mysql 去除重复 Select中DISTINCT关键字的用法(查询两列,只去掉重复的一列)
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的 ...
最新文章
- android 设置setmultichoiceitems设置初始化勾选_阿里巴巴Java开发手册建议创建HashMap时设置初始化容量,但是多少合适呢?...
- tensorflow学习函数笔记
- while循环,递进,linux按行读入并按数组存储
- python123登录网页版_Python模拟登录验证码(代码简单)
- java自制缓冲池_java String 缓冲池概念的举例说明
- 0/1背包问题-----动态规划求解
- 你们是不是对QQ总在后台莫名其妙更新一些东西很反感
- Java命令行界面(第25部分):JCommando
- Python_异常和模块
- Vaughn Vernon谈云原生和反应式现状
- ado.net mysql 转义_ADO.NET数据库查询
- 美图手机告别文,写得真好!
- 短视频APP测试要点
- 代码时间换空间以及空间换时间
- 微服务的技术架构路线
- 禅道 upgrade.php,禅道升级,添加钉钉通知
- html5弹性盒做成骰子,弹性盒制作骰子
- python opencv轮廓检测_python opencv 来对图片(苹果)的轮廓(最大轮廓进行识别)进行...
- 强力推荐—20款免费备份文件软件
- 水星WM150U无线网卡开机掉驱动的解决方法