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 使用自定义变量进行查询优化
May 14 MySQL
Mysql数据库索引面试题(程序员基础技能)
May 31 MySQL
MySQL 常见存储引擎的优劣
Jun 02 MySQL
MySQL 时间类型的选择
Jun 05 MySQL
MySQL 8.0 驱动与阿里druid版本兼容问题解决
Jul 01 MySQL
mysql连接查询中and与where的区别浅析
Jul 01 MySQL
基于MySql验证的vsftpd虚拟用户
Nov 07 MySQL
MySQL派生表联表查询实战过程
Mar 20 MySQL
MySQL如何使备份得数据保持一致
May 02 MySQL
MySQL数据库实验之 触发器和存储过程
Jun 21 MySQL
MySQL深分页问题解决思路
Dec 24 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
初级的用php写的采集程序
2007/03/16 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
2013/07/03 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
基于php解决json_encode中文UNICODE转码问题
2020/11/10 PHP
jQuery表格行换色的三种实现方法
2011/06/27 Javascript
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
jQuery实现鼠标经过事件的延时处理效果
2020/08/20 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
2015/12/12 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
AngularJs Scope详解及示例代码
2016/09/01 Javascript
JS验证input输入框(字母,数字,符号,中文)
2017/03/23 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
vue实现图片上传预览功能
2019/12/23 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
微信小程序反编译的实现
2020/12/10 Javascript
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
对Python中9种生成新对象的方法总结
2018/05/23 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
Python Des加密解密如何实现软件注册码机器码
2020/01/08 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
2020/02/10 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
英语文学专业学生的自我评价
2013/10/31 职场文书
中文师范生自荐信
2014/01/30 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
MySQL创建管理HASH分区
2022/04/13 MySQL