date oracle 显示毫秒_oracle数据库to_date日期格式化到毫秒 | 学步园
事由:一個數據導入功能,其通過視圖表里一條數據的時間字段作為判斷是否已導入的標識。
每次記錄最后導入的一條數據的時間字段,下一次判斷則導入上一次記錄下的時間字段值以后的數據。
失敗經驗:網上看到有網友提供了“ff”可以精確到毫秒,代碼如下:
存最后一條數據的時間字段值,主要代碼如下:
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");//定義格式,顯示毫秒
String date = df.format(lastdate);
sql查詢語句代碼如下:
String lastdate = props.getProperty("lastdate");?//獲取最后一次記錄的時間值
String sql = "select * from ( select * from view_news " ;
if(null!=lastdate&&lastdate.length()>0){
sql +=" where create_date>to_date('"+lastdate+"','yyyy-MM-dd HH24:mi:ss ff') ";
}
sql +="? order by Create_date ) where rownum <= 1000? ";
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(getDocsSql());
可以看到配置文件里存入的值為:lastdate=2010-11-20 03/:57/:58 000
但是在執(zhí)行sql語句時to_date報:日期格式無法識別
解決思路:
Statement 改為采用PreparedStatement,通過設置參數值setTimestamp()的方式來進行轉換。
String sql = "select * from ( select * from view_news " ;
if(null!=lastdate&&lastdate.length()>0){
sql +=" where create_date>?";
}
sql +="? order by Create_date ) where rownum <= 1000? ";
PreparedStatement stmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
if(lastdate1!=null && lastdate1.length()>0 )
stmt.setTimestamp(1, Timestamp.valueOf(lastdate1));
rs = stmt.executeQuery();
總結
以上是生活随笔為你收集整理的date oracle 显示毫秒_oracle数据库to_date日期格式化到毫秒 | 学步园的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ambari hive mysql_am
- 下一篇: mysql不同服务器数据库查询_不同服务