java 怎样获取java.sql.date 类型年月日并插入到数据库date类型中

Java中得到Java.sql.date类型只要年月日,插入到数据库中,数据库中为date类型

字段updateTime为Date类型,那么如果只要精确到年月日,那么就使用trunc(updateTime)即可,其他还有:
trunc[截断到最接近的日期,单位为天] ,返回的是日期类型
select sysdate S1,
trunc(sysdate) S2, //返回当前日期,无时分秒
trunc(sysdate,'year') YEAR, //返回当前年的1月1日,无时分秒
trunc(sysdate,'month') MONTH , //返回当前月的1日,无时分秒
trunc(sysdate,'day') DAY //返回当前星期的星期天,无时分秒
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-11
Date date = new Date(System.currentTimeMillis()); //System.currentTimeMillis()获取1970年开始的到现在的毫秒值
在你用格式化函数格式话一下SimpleDateFormat dimple = new SimpleDateFormat("yyyy-MM-dd ");
dimple.format(date) 把date格式化
第2个回答  推荐于2017-11-25
JDBC环境下
如果使用的是PreparedStatement接口:
String sql = "insert into 表名(date类型的列) values(?)";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setDate(1, date对象);
stmt.executeUpdate();

如果使用的是Statement接口:
java.text.SimpleDateFormat fmt1 = new java.text.SimpleDateFormat("yyyy-MM-dd"); // mssql、mysql格式
java.text.SimpleDateFormat fmt2 = new java.text.SimpleDateFormat("dd-MM月-yyyy"); // oracle格式

String sql = String.format("insert into 表名(date类型的列) values('%s')", fmt1.format(date对象));
Statement stmt = con.createStatement();
stmt.executeUpdate(sql);

使用Hibernate和mybaits的确就不用关心类型转换问题了~本回答被提问者采纳
第3个回答  2013-05-11
1、用hibernate就可以直接屏蔽掉这个问题,直接面向对象就可以了。

2、如果自己要用jdbc去操作的话,
我想起来可能行的两个方式(我都试过,我以前用jdbc都是直接插入int,string等):
(1)jdbc中的PreparedStatements中也是有相应的位置值的填充,好像是有一个直接插入一个date类型值的接口方法。
(2)插入一个跟数据中的date类型一致的字符串格式就可以了。如
yyyy-MM-dd hh:mm:ss等这样的样式。本回答被网友采纳
相似回答