Mybatis-Plus插入和更新自动将date转换为Timestamp,日期会减少8小时

在使用MyBatis-Plus进行数据库操作时,遇到Date类型被自动转换为Timestamp类型导致时间偏移的问题,及解决方案。文章对比了Timestamp与Datetime的存储空间、时区影响、时间范围、自动更新特性,并提供了两者之间的转换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     在使用mybatis-plus自带的插入和更新时,出现了一个神奇的问题,前台传入的是Date类型(yyyy-MM-dd),但是在插入的时候,却发现是Timestamp类型,插入到数据库发现时间比原来减少了8小时,后来将数据库日期类型修改为Datetime解决。

    接来下搜索了一下Timestamp和Datetime的区别:

   转载自:http://www.cnblogs.com/swey/p/4492450.html

1. 存储空间不同

a) TIMESTAMP占用4个字节

b) DATETIME占用8个字节

2. 受时区影响

c) TIMESTAMP实际记录的是1970-01-01 00:00:01到现在的数数,受时区影响

d) DATETIME不受时区影响

3. 时间范围不同

e) TIMESTAMP的时间范围是:'1970-01-01 00:00:01' UTC ~ '2038-01-19 03:14:07' UTC

f) DATETIME的时间范围是:'1000-01-01 00:00:00' ~ '9999-12-31 23:59:59'

4. 自动更新

g) TIMESTAMP类型在默认情况下,insert、update 数据时,TIMESTAMP列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。

5. Mysql中,TIMESTAMP和long之间的转换函数:

h) TIMESTAMP转long:UNIX_TIMESTAMP

i) long转TIMESTAMP:FROM_UNIXTIME

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值