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 user权限表
Jun 18 MySQL
新手入门Mysql--概念
Jun 18 MySQL
MySQL8.0.18配置多主一从
Jun 21 MySQL
MySQL系列之七 MySQL存储引擎
Jul 02 MySQL
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
Aug 02 MySQL
MySQL分区表实现按月份归类
Nov 01 MySQL
浅谈mysql哪些情况会导致索引失效
Nov 20 MySQL
面试提问mysql一张表到底能存多少数据
Mar 13 MySQL
Windows下载并安装MySQL8.0.x 版本的完整教程
Apr 10 MySQL
mysql幻读详解实例以及解决办法
Jun 16 MySQL
MySQL约束(创建表时的各种条件说明)
Jun 21 MySQL
MySQL中正则表达式(REGEXP)使用详解
Jul 07 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无限极分类递归排序实现方法
2014/11/11 PHP
php截取html字符串及自动补全html标签的方法
2015/01/15 PHP
浅谈php的优缺点
2015/07/14 PHP
Swoole实现异步投递task任务案例详解
2019/04/02 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
2019/10/21 PHP
js文件中调用js的实现方法小结
2009/10/23 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
JQuery+CSS提示框实现思路及代码(纯手工打造)
2013/05/07 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
原生JS实现ajax与ajax的跨域请求实例
2017/12/01 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
创建与框架无关的JavaScript插件
2020/12/01 Javascript
[47:45]Liquid vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
解决每次打开pycharm直接进入项目的问题
2018/10/28 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
实验心得体会
2014/09/05 职场文书
法院反腐倡廉心得体会
2014/09/09 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
教师个人年终总结
2015/02/11 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
2019年自助餐厅创业计划书模板
2019/08/22 职场文书
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL
Redis入门基础常用操作命令整理
2022/06/01 Redis