mysql时间后⾯有个0_mysql异常(⼀)⽇期后⾯多了个.0的解
决办法
从数据库读出来的⽇期后⾯多了个 .0 的解决办法
从数据库读出来的⽇期后⾯为什么多了个 .0,这是因为你数据库的该字段设置为 timestamp 类型了,然⽽如果设置为Date类型的话就不
会报这种错误了,当然,你⾮要⽤ timestamp 类型的话,⼩编也帮你给解决了,也很简单。我把测试类给⼤家看⼀下吧,有图有真相
[java] view
这⾥的  MM 在java中代表⽉份,⽽  mm 代表分钟, HH 代表24⼩时制的时间, hh 代表12⼩时制的时间,很严格的
Date date = fmt.Time());      //将从数据库读出来的 timestamp 类型的时间转换为java的Date类型
String s = fmt.format(date);                //将这个时间格式化,转换为String类型
System.out.println("Time()        : "+Time());//打印原本从数据库读出来的 timestamp 类型⽇期
System.out.println("LocaleString() : "+LocaleString());//打印使⽤LocaleString()⽅法得到的⽇期
System.out.println("fmt.format(date)      : "+s);//打印格式化之后的⽇期,这是最理想的⽇期格
式/*Date To String*/String str = fmt.format(date);/*String To Date*/Date d = fmt.parse(s);}}
运⾏结果:
采⽤MySQL⾃带的函数DATE_FORMAT。
date_ated_at, '%Y-%m-%d %H:%i:%s') createdAtdate_format(utt.updated_at, '%Y-%m-%d %H:%i:%s') ASerror parse new
updatedAt
第⼀、直接在MySQL中解决:SELECT T.ID, T.USERNAME, DATE_FORMAT(t.birthday, '%Y-%m-%d %k:%i:%s') as birthday
FROM USERINFO T;SQL语句中加DATE_FORMAT函数就不会带微秒。
第⼆、在Java中处理:public static String getFullFormateString(Date date){  SimpleDateFormat sdf = new
SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  return date == null ? "" : sdf.format(date);}
.0 到底是怎么来的?
怎么解决?除了substring
改为getTimestamp仍然不⾏?
评论:
正确读取时间的⽅法:System.out.println(new Timestamp('time')));
时间不能这样取,rs.getString()⽤来取String类型的数据。把时间直接按String读取相当于先取取java.sql.Timestamp该类型数据然后再对该数据进⾏toString()所以才会得到你看到的“错误”的结果。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。