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之DML语言
Apr 05 MySQL
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
May 25 MySQL
详解MySQL多版本并发控制机制(MVCC)源码
Jun 23 MySQL
MySQL配置主从服务器(一主多从)
Aug 07 MySQL
MySQL基础快速入门知识总结(附思维导图)
Sep 25 MySQL
面试提问mysql一张表到底能存多少数据
Mar 13 MySQL
MySQL创建管理HASH分区
Apr 13 MySQL
MySQL 条件查询的常用操作
Apr 28 MySQL
MySQL数据库 安全管理
May 06 MySQL
mysql中关键词exists的用法实例详解
Jun 10 MySQL
一文解答什么是MySQL的回表
Aug 05 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如何编写易读的代码
2007/07/10 PHP
js下函数般调用正则的方法附代码
2008/06/22 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
php格式文件打开的四种方法
2018/02/24 PHP
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
js 字符串转换成数字的三种方法
2013/03/23 Javascript
jquery提取元素里的纯文本不包含span等里的内容
2013/09/30 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
jquery图片倾斜层叠切换特效代码分享
2015/08/27 Javascript
JS前端加密算法示例
2016/12/22 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
浅析Python 序列化与反序列化
2020/08/05 Python
python matplotlib绘制三维图的示例
2020/09/24 Python
详解Html5中video标签那些属性和方法
2019/07/01 HTML / CSS
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
秋季婚礼证婚词
2014/01/11 职场文书
《学会待客》教学反思
2014/02/22 职场文书
春节联欢会主持词
2014/03/24 职场文书
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
一文弄懂MySQL索引创建原则
2022/02/28 MySQL
详解Nginx的超时keeplive_timeout配置步骤
2022/05/25 Servers