您的位置:首页 > 数据库 > MySQL

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

2013-04-18 03:34 513 查看
某个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来存储时间。大大省去了格式转化带来的麻烦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐