java jdbc连接oracle数据库,sql语句处理时间代码的问题
**最近做一个数据库迁移的项目,就是把原有的数据迁移到一个新的库中,其中事件处理方面各种类型的时间数据,因此在这里做一个小结
sqlmsg = "SELECT DATA FROM wds.telemetrywaterlevelhour WHERE id=? "
+ "AND MEASCODE=? and appliedtime=? "
这个代码中的applied time传的应该是java.sql.date数据,而不是java.util.date数据,两者的区别在于sql.date只精确到天,util.date精确到秒的级别。或者直接传递timestamp类型的数据,timestamp是精确到秒级别的。
为此,我再次做了一个总结,关于各种时间数据的转换关系:
首先我们了解一下timestamp是一种什么类型的数据。如下图所示,利用一个long型数据生成一个timestamp对象,发现timestamp和一般的yyyy-mm-dd HH:mi:ss类型时间格式不同的是秒数有小数点。
这个小数点我们暂时不做探讨。
String转换为date:
借助于SimpleDateFormat这个类的parse()方法:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date da