[英]Incorrect datetime value while saving data to MySql
我遇到了一個有關將Java Date
對象保存到MySql db的奇怪問題。 這是我得到的錯誤:
Incorrect datetime value: '1970-01-01 02:55:00' for column 'start_time' at row 1
我的SQL腳本
CREATE TABLE `schedules` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`start_time` timestamp NOT NULL,
`end_time` timestamp NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
我實體的一部分:
@Column(name = "start_time")
private Date startTime;
當我嘗試做類似的事情
String time = "02:55"
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
scheduleEntity.setStartTime(sdf.parse(time));
repository.save(scheduleEntity);
它落入錯誤。 但是,當我使用"16:00"
字符串進行解析時,它可以完美地工作。 我使用Spring Boot,Spring Data和Hibernate。 有人能幫我嗎?
您的列類型為TIMESTAMP
11.3.1 DATE,DATETIME和TIMESTAMP類型
TIMESTAMP數據類型用於包含日期和時間部分的值。 TIMESTAMP的UTC范圍為'1970-01-01 00:00:01'至UTC'2038-01-19 03:14:07'。
解決方案,您可以直接在數據庫或刪除表中將start_time和end_time列類型更改為DATETIME,並像這樣更改您的實體
@Column(name = "start_time", columnDefinition="DATETIME")
@Temporal(TemporalType.TIMESTAMP)
private Date startTime;
希望對你有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.