kosam

任重道远 毋忘奋斗

导航

向mysql中插入格式为"yyyy-MM-dd HH:mm:ss"的时间

某个table中有一个类型为datetime的字段,想向其插入一个时间,格式为"yyyy-MM-dd HH:mm:ss";
开始我的做法是,sql中执行 ps.setDate(2,date)。。。发现,插入的成功后,后台数据库的时间的时分秒显示总是为00:00:00.
我在sql执行前已经事先格式话好了。
SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String rReceptDate = sfd.format(date);
java.sql.Date date2 = java.sql.Date.valueOf(cFinishDate);
ps.setDate(7, date2);

  上面那种就直接出bug:
java.lang.NumberFormatException: For input string: "18 02:18:15"
  不懂,就问度娘,发现绝大多数还是叫我们先format格式好先,再插入。
  另外,将当前时间插入mysql的,我按照别人说的,试了一次:
ps.setDate(2, new java.sql.Date((long)new java.util.Date().getTime()));
结果,mysql数据中就是时分秒没有记录,显示 00:00:00。

   其实,我一直以为在mysql中格式为date,datetime等时间类型的数据,在java执行sql插入时,要一定用 ps.setDate 方法,不经意间,
看到一个网友写到可以直接用 setString 插入,当然事先格式好要插入时间的格式。经实验,用setString 插入真的很方便。

再说,要是还是类型为datetime的字段,要按格式“yyyy-MM-dd HH:mm:ss”从数据库中读取出来,我真心不会。怎么都是只能读取到“yyyy-MM-dd”格式的。

因此,最好的办法就是将字段的类型改用为varchar来存储时间。大大省去了格式转化带来的麻烦。

posted on 2013-04-18 03:34  kosam  阅读(1918)  评论(0编辑  收藏  举报