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服务添加 iptables防火墙策略的方案
Apr 29 MySQL
MySQL中distinct和count(*)的使用方法比较
May 26 MySQL
MYSQL(电话号码,身份证)数据脱敏的实现
May 28 MySQL
MySQL REVOKE实现删除用户权限
Jun 18 MySQL
MySQL命令无法输入中文问题的解决方式
Aug 30 MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
Dec 06 MySQL
Mysql存储过程、触发器、事件调度器使用入门指南
Jan 22 MySQL
MySql重置root密码 --skip-grant-tables
Apr 11 MySQL
MySQL三种方式实现递归查询
Apr 18 MySQL
sql查询语句之平均分、最高最低分及排序语句
May 30 MySQL
MySQL中order by的执行过程
Jun 05 MySQL
Mysql中的触发器定义及语法介绍
Jun 25 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生成缩略图示例代码分享(使用gd库实现)
2014/01/20 PHP
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
php使用pear_smtp发送邮件
2016/04/15 PHP
微信支付的开发流程详解
2016/09/13 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
javascript实现轮显新闻标题链接
2007/08/13 Javascript
javascript 面向对象编程基础:封装
2009/08/21 Javascript
解析JavaScript中的标签语句
2013/06/19 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
浅谈JavaScript中的对象及Promise对象的实现
2015/11/15 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
jQuery实现日期联动效果实例
2016/07/26 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
在vue里面设置全局变量或数据的方法
2018/03/09 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
javascript验证form表单数据的案例详解
2019/03/25 Javascript
微信小程序背景音乐开发详解
2019/12/12 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
cmd运行python文件时对结果进行保存的方法
2018/05/16 Python
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
Nike瑞典官方网站:Nike.com (SE)
2018/11/26 全球购物
党员岗位承诺口号大全
2014/03/28 职场文书
讲党性心得体会
2014/09/03 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
员工离职证明范本
2015/06/12 职场文书
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL