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的半同步
Apr 22 MySQL
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
May 06 MySQL
MySQL 自定义变量的概念及特点
May 13 MySQL
MySQL索引失效的典型案例
Jun 05 MySQL
安装配置mysql及Navicat prenium的详细流程
Jun 10 MySQL
MySQL 如何设计统计数据表
Jun 15 MySQL
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
Aug 23 MySQL
详细聊聊关于Mysql联合查询的那些事儿
Oct 24 MySQL
MySQL 分区表中分区键为什么必须是主键的一部分
Mar 17 MySQL
MySQL库表太大怎么办? 数据库分库分表项目实践
Apr 11 MySQL
CentOS MySql8 远程连接实战
Apr 19 MySQL
MySQL索引 高效获取数据的数据结构
May 02 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
解析thinkphp中的导入文件标签
2013/06/20 PHP
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
将string解析为json的几种方式小结
2010/11/11 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
Javascript 面试题随笔
2011/03/31 Javascript
Knockoutjs快速入门(经典)
2012/12/24 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
2015/04/15 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
json实现添加、遍历与删除属性的方法
2016/06/17 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
2016/09/16 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
Vue文本模糊匹配功能如何实现
2020/07/30 Javascript
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
Python中的Matplotlib模块入门教程
2015/04/15 Python
对python多线程与global变量详解
2018/11/09 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
北美领先的智能产品购物网站:Wellbots
2018/06/11 全球购物
英国领先的酒杯和水晶玻璃器皿制造商:Dartington Crystal
2019/06/23 全球购物
初二物理教学反思
2014/01/29 职场文书
《藏戏》教学反思
2014/02/11 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
运动会主持人开幕词
2016/03/04 职场文书
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL