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 相关文章推荐
Navicat for MySQL的使用教程详解
May 27 MySQL
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
May 29 MySQL
MYSQL 无法识别中文的永久解决方法
Jun 03 MySQL
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
Jun 26 MySQL
SQL实现LeetCode(180.连续的数字)
Aug 04 MySQL
Prometheus 监控MySQL使用grafana展示
Aug 30 MySQL
浅谈MySQL函数
Oct 05 MySQL
MySQL数据库索引的最左匹配原则
Nov 20 MySQL
面试提问mysql一张表到底能存多少数据
Mar 13 MySQL
MySQL 字符集 character
May 04 MySQL
sql查询语句之平均分、最高最低分及排序语句
May 30 MySQL
mysql数据库隔离级别详解
Jun 16 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
《OVERLORD》第四季,终于等到你!
2020/03/02 日漫
paypal即时到账php实现代码
2010/11/28 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
php表单处理操作
2017/11/16 PHP
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
Javascript中克隆一个数组的实现代码
2013/12/06 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
jQuery解析json格式数据示例
2018/09/01 jQuery
自己动手封装一个React Native多级联动
2018/09/19 Javascript
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
Pycharm更换python解释器的方法
2018/10/29 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
一篇文章弄懂Python中所有数组数据类型
2019/06/23 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
python Matplotlib模块的使用
2020/09/16 Python
纯CSS实现聊天框小尖角、气泡效果
2014/04/04 HTML / CSS
荟萃全球保健品:维他购
2018/05/09 全球购物
会计自我鉴定范文
2013/10/06 职场文书
《鞋匠的儿子》教学反思
2014/03/02 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
Python爬取科目四考试题库的方法实现
2021/03/30 Python
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS