MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

作者:肖朋伟 时间:2024-01-17 01:32:25 

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日期时间类型

日期类型字节最小值最大值
DATE41000-01-019999-12-31
DATETIME81000-01-0100:00:00
TimeStamp41970010108000012038年
Time3-838:59:59838:59:59
year119012155

知识点:

  • 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'

MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

t没发生变化

来源:https://icode.blog.csdn.net/article/details/104344461

标签:MySQL,TIMESTAMP类型,日期,时间
0
投稿

猜你喜欢

  • 如何用python将单引号替换为双引号

    2023-06-19 06:26:29
  • Python中使用kitti数据集实现自动驾驶(绘制出所有物体的行驶轨迹)

    2023-06-27 17:02:54
  • django url到views参数传递的实例

    2023-10-17 13:53:42
  • Pycharm及python安装详细教程(图解)

    2023-01-06 00:26:00
  • 教你如何看懂SQL Server查询计划

    2024-01-12 21:10:41
  • FrontPage 2002应用技巧四则

    2008-08-17 10:57:00
  • Python 文件管理实例详解

    2022-08-22 16:29:54
  • Select的OnChange()事件

    2009-03-03 12:40:00
  • python+requests+unittest API接口测试实例(详解)

    2021-10-14 13:15:08
  • Python通过poll实现异步IO的方法

    2023-07-17 04:08:52
  • 如何取消pyecharts绘制地图时默认显示小圆点标识

    2021-05-06 19:43:35
  • Python运算符优先级详细整理

    2021-12-17 06:38:14
  • Python使用docx模块实现刷题功能代码

    2021-03-12 22:28:30
  • JavaScript+Node.js写一款markdown解析器

    2024-04-18 09:36:06
  • pycharm中leetcode插件使用图文详解

    2022-09-19 19:19:43
  • python编写暴力破解FTP密码小工具

    2021-11-29 15:32:40
  • SQL Server口令 sql server安全性第1/2页

    2024-01-22 19:00:15
  • 用electron 打包发布集成vue2.0项目的操作过程

    2024-05-09 15:22:59
  • Pytorch实现简单自定义网络层的方法

    2021-01-13 16:02:55
  • Python数据抓取爬虫代理防封IP方法

    2022-12-18 18:32:32
  • asp之家 网络编程 m.aspxhome.com