工作日记2017.10.30 MySQL的日期存储'1970-01-01 08:00:00' 问题

在尝试将'1970-01-01 08:00:00'插入到MySQL的timestamp字段时遇到数据截断异常。MySQL的timestamp类型支持1970年至2037年的日期,而此值可能超出了范围。日期时间格式包括date、datetime、time、timestamp和year,各类型有其特定的存储范围。

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

类似的业务场景如下:

//时间戳为0
Date beginTime = new Date(beginTimeStamp);
//beginTime为'1970-01-01 08:00:00'

若将beginTime存到Mysql的timestamp格式的字段时,会报一下异常
Data truncation: Incorrect datetime value: ‘1970-01-01 08:00:00’ for column

关于数据库和日期格式,如下:

mysql数据库

分别是 datedatetimetimetimestampyear

  • date :“yyyy-mm-dd”格式表示的日期值
  • time :“hh:mm:ss”格式表示的时间值
  • datetime: “yyyy-mm-dd hh:mm:ss”格式
  • timestamp: “yyyymmddhhmmss”格式表示的时间戳值
  • year: “yyyy”格式的年份值。

  • date :“1000-01-01”到“9999-12-31” 3字节
  • time :“-838:59:59”到“838:59:59” 3字节
  • datetime :“1000-01-01 00:00:00” 到“9999-12-31 23:59:59” 8字节
  • timestamp :19700101000000 到2037 年的某个时刻 4字节 year 1901 到2155 1字节

还有Oracle和sql server,
转自http://www.cnblogs.com/andydao/p/3182146.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值