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 Show Profile
Apr 05 MySQL
详解MySQL 联合查询优化机制
May 10 MySQL
Mysql中 unique列插入重复值该怎么解决呢
May 26 MySQL
如何自己动手写SQL执行引擎
Jun 02 MySQL
Mysql8.0递归查询的简单用法示例
Aug 04 MySQL
为什么MySQL 删除表数据 磁盘空间还一直被占用
Oct 16 MySQL
MySQL的InnoDB存储引擎的数据页结构详解
Mar 03 MySQL
MySQL去除密码登录告警的方法
Apr 20 MySQL
单机多实例部署 MySQL8.0.20
May 15 MySQL
MySQL 自动填充 create_time 和 update_time
May 20 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代码(抓取网页中的邮箱地址)
2012/07/17 PHP
php实例分享之二维数组排序
2014/05/15 PHP
php动态添加url查询参数的方法
2015/04/14 PHP
PHP+swoole实现简单多人在线聊天群发
2016/01/19 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
2016/03/15 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
2016/03/17 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
JS 修改URL参数(实现代码)
2013/07/08 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
理解jquery事件冒泡
2016/01/03 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
js根据后缀判断文件文件类型的代码
2020/05/09 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
python基础教程之简单入门说明(变量和控制语言使用方法)
2014/03/25 Python
python正则表达式的使用
2017/06/12 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
python3安装speech语音模块的方法
2018/12/24 Python
解决json中ensure_ascii=False的问题
2020/04/03 Python
Python实现京东抢秒杀功能
2021/01/25 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
详解如何使用rem或viewport进行移动端适配
2020/08/14 HTML / CSS
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
高三毕业生自我鉴定
2013/12/20 职场文书
物流管理专业自荐信
2014/06/23 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
处级干部考察材料
2014/12/24 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
导游词之扬州大明寺
2019/10/09 职场文书
pyqt5蒙版遮罩mask,setmask的使用
2021/06/11 Python