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 覆盖索引的优点
May 19 MySQL
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
May 29 MySQL
MySQL中的布尔值,怎么存储false或true
Jun 04 MySQL
浅谈MySQL user权限表
Jun 18 MySQL
SQL实现LeetCode(177.第N高薪水)
Aug 04 MySQL
彻底解决MySQL使用中文乱码的方法
Jan 22 MySQL
MySQL高级进阶sql语句总结大全
Mar 16 MySQL
Linux系统下MySQL配置主从分离的步骤
Mar 21 MySQL
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
Mar 23 MySQL
mysql中DCL常用的用户和权限控制
Mar 31 MySQL
MySql数据库 查询时间序列间隔
May 11 MySQL
mysql 获取相邻数据项
May 11 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
2006/11/25 PHP
Laravel框架模型的创建及模型对数据操作示例
2019/05/07 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
python创建和使用字典实例详解
2013/11/01 Python
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
python实现自动更换ip的方法
2015/05/05 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
websocket+sockjs+stompjs详解及实例代码
2018/11/30 HTML / CSS
蔻驰美国官网:COACH美国
2016/08/18 全球购物
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
Java的基础面试题附答案
2016/01/10 面试题
高中生的自我鉴定范文
2014/01/24 职场文书
应聘面试自我评价
2014/01/24 职场文书
教师求职信范文
2014/05/24 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
离婚起诉状范本
2015/05/19 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
外出培训学习心得体会
2016/01/18 职场文书
大学生创业计划书
2019/06/24 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书
Python中else的三种使用场景
2021/06/16 Python
Python测试框架pytest高阶用法全面详解
2022/06/01 Python
基于Redission的分布式锁实战
2022/08/14 Redis