MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决


Posted in MySQL onDecember 24, 2022

TIMESTAMP类型返回日期时间数据中带有 T

场景描述

MySQL 中使用 TIMESTAMP 类型

实体类使用 java.util.Date 类型

返回 JSON 数据:

MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

通过注解格式化(方法一)

可以在日期类型属性上,或者 GET 方法加上 Jackson 的 @JsonFormat 注解方式来格式化,例如:

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;

结果:

MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

通过全局配置(方法二)

@Configuration
public class WebMvcConfig {
    @Bean
    MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        ObjectMapper mapper = new ObjectMapper();
        mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
        converter.setObjectMapper(mapper);
        return converter;
    }
}

MySQL时间类型timestamp知识点

mysql日期时间类型

日期类型 字节 最小值 最大值
DATE 4 1000-01-01 9999-12-31
DATETIME 8 1000-01-01 00:00:00
TimeStamp 4 197001010800001 2038年
Time 3 -838:59:59 838:59:59
year 1 1901 2155

知识点:

  • 1 如果需要经常插入或者更新日期为当前时间 则通常使用Timestamp,timestamp值返回后显示为”YYYY-MM-DD HH:MM:SS”格式的字符串
  • 2 如果只表示年份可以用year 他比date占用更少的空间year有2位或者4位格式的年默认为4位
  • 3 每种日期类型都有一个有效值范围如果超出这个范围将以零值进行存储

DATE TIME DATETIME为最常用

实例:

CREATE TABLE t (d date , t  time , dt datetime);
desc t

MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

insert INTO t VALUES(NOW(),NOW(),NOW())
select * from t

MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

DATETIME是date和time的结合

Timestamp实例

CREATE TABLE ttt (t timestamp);

MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

系统自动给timestamp加上了默认值

INSERT INTO ttt VALUES(NULL)
select * from ttt

MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

插入null 系统自动插入了当前时间戳

mysql中只给表中的第一个timestamp字段类型设置默认值为当前日期 如果有第二个timestamp类型则默认值设置为0

alter TABLE ttt add t2 timestamp;
SHOW CREATE TABLE ttt;
CREATE TABLE `ttt` (
  `t` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `t2` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=MyISAM DEFAULT CHARSET=utf8

mysql一个表中值允许一列的默认值为current_timestamp

INSERT INTO ttt VALUES(null,null)

MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

update ttt set t2 = '2015-11-28 03:00:40' where t='2015-11-27 03:00:40'

MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

t2 变了 t也变化成了当前时间 这是一个大坑 尤其是在一些需要按创建时间排序的需求中

所以结论是在mysql中使用时间字段timestamp时注意一定要 加上初始化的值 并且不能是current_timestamp

修改t为有初始值

alter TABLE ttt   change `t` `t` timestamp default '0000-00-00 00:00:00' NOT NULL ;
desc ttt

MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

此时再去

update ttt set t2 = '2015-11-28 04:00:40' where t='2015-11-27 03:02:50'

t没发生变化

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

MySQL 相关文章推荐
MySQL获取所有分类的前N条记录
May 07 MySQL
mysql数据库入门第一步之创建表
May 14 MySQL
新手必备之MySQL msi版本下载安装图文详细教程
May 21 MySQL
MySQL中distinct和count(*)的使用方法比较
May 26 MySQL
Mysql8.0递归查询的简单用法示例
Aug 04 MySQL
Mysql实现简易版搜索引擎的示例代码
Aug 30 MySQL
MySQL分库分表详情
Sep 25 MySQL
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
Apr 20 MySQL
Mysql 文件配置解析介绍
May 06 MySQL
MySQL 计算连续登录天数
May 11 MySQL
MySQL实现字段分割一行转多行的示例代码
Jul 07 MySQL
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
Dec 24 MySQL
MySQL实现用逗号进行拼接、以逗号进行分割
Dec 24 #MySQL
MySQL数据管理操作示例讲解
Dec 24 #MySQL
MySQL深分页问题解决思路
Dec 24 #MySQL
DQL数据查询语句使用示例
Dec 24 #MySQL
mysql数据库如何转移到oracle
Dec 24 #MySQL
mysql序号rownum行号实现方式
Dec 24 #MySQL
Mysql的Table doesn't exist问题及解决
Dec 24 #MySQL
You might like
php 删除数组元素
2009/01/16 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
Hutia 的 JS 代码集
2006/10/24 Javascript
利用js制作html table分页示例(js实现分页)
2014/04/25 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
2017/01/05 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
node中实现删除目录的几种方法
2019/06/24 Javascript
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
JS+CSS实现过渡特效
2021/01/02 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
Python实现国外赌场热门游戏Craps(双骰子)
2015/03/31 Python
python Socket之客户端和服务端握手详解
2017/09/18 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
Python SQLite3简介
2018/02/22 Python
Python values()与itervalues()的用法详解
2019/11/27 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
Python如何读取、写入CSV数据
2020/07/28 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
在Python中字典按值排序的实现方法
2020/11/12 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
经济与贸易专业应届生求职信
2013/11/19 职场文书
公司年会演讲稿范文
2014/01/11 职场文书
工地安全标语
2014/06/07 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
人民调解协议书
2016/03/21 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers