Mysql中的DATE和DATETIME有什么区别?
DATETIME
类型可用于需要同时包含日期和时间信息的值。MySQL 以 'YYYY-MM-DD HH:MM:SS'
格式检索与显示 DATETIME 类型。支持的范围是
'1000-01-01
00:00:00' 到 '9999-12-31
23:59:59'。(“支持”的含义是,尽管更早的值可能工作,但不能保证他们均可以。)
DATE
类型可用于需要一个日期值而不需要时间部分时。MySQL 以 'YYYY-MM-DD' 格式检索与显示
DATE
值。支持的范围是 '1000-01-01' 到
'9999-12-31'。
但是在java中只有Date类型,这样数据存储会出现问题,前台提交的数据,比如2016-10-10 14:30:59,后台用Date接受的时候,由于Date之精确到天,所以,默认接收时间为2016-10-10 00:00:00,保存到mysql数据库之后,重新取出数据的时候又会发现,数据为2016-10-10 00:00:00.0,无缘无故在后面多了一个.0,这样页面渲染的时候就会报错,
解决方法:
前台提交到java后端时:
@NotNull(message = "必须提供时间")
private Date date;
public Date getDate() {
return date;
}
public void setDate(String date) {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try {
this.date = f.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
}
从数据库查询出的数据:
public String getDateStr() {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.date);
}
在页面渲染的时候获取属性dateStr即可!