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 26 MySQL
Mysql 设置boolean类型的操作
Jun 04 MySQL
MySQL快速插入一亿测试数据
Jun 23 MySQL
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
Jun 26 MySQL
浅谈mysql哪些情况会导致索引失效
Nov 20 MySQL
Mysql存储过程、触发器、事件调度器使用入门指南
Jan 22 MySQL
教你如何让spark sql写mysql的时候支持update操作
Feb 15 MySQL
MySQL中IO问题的深入分析与优化
Apr 02 MySQL
mysql 8.0.27 绿色解压版安装教程及配置方法
Apr 20 MySQL
mysql性能优化以及配置连接参数设置
May 06 MySQL
Mysql数据库事务的脏读幻读及不可重复读详解
May 30 MySQL
MySQL 原理与优化之原数据锁的应用
Aug 14 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抓取页面与代码解析 推荐
2010/07/23 PHP
php调用c接口无错版介绍
2014/03/11 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
PHP简单实现记录网站访问量功能示例
2018/06/06 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
用js+xml自动生成表格的东西
2006/12/21 Javascript
javascript parseInt 函数分析(转)
2009/03/21 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
2013/06/24 Javascript
zTree插件之多选下拉菜单实例代码
2013/11/06 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
Electron整合React使用搭建开发环境的步骤详解
2020/06/07 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
轻松实现python搭建微信公众平台
2016/02/16 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
python模块smtplib实现纯文本邮件发送功能
2018/05/22 Python
对python中的高效迭代器函数详解
2018/10/18 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
python async with和async for的使用
2019/06/20 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
浅谈对python中if、elif、else的误解
2020/08/20 Python
pycharm-professional-2020.1下载与激活的教程
2020/09/21 Python
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
校园餐饮创业计划书
2014/01/10 职场文书
乡镇爱国卫生月活动总结
2014/06/25 职场文书
法律进社区活动总结
2015/05/07 职场文书
民事起诉书范本
2015/05/19 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
JS数组的常用方法整理
2021/03/31 Javascript
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
深入浅析Redis 集群伸缩原理
2021/05/15 Redis