date oracle 显示毫秒_oracle数据库to_date日期格式化到毫秒 | 学步园
事由:一個數(shù)據(jù)導(dǎo)入功能,其通過視圖表里一條數(shù)據(jù)的時間字段作為判斷是否已導(dǎo)入的標(biāo)識。
每次記錄最后導(dǎo)入的一條數(shù)據(jù)的時間字段,下一次判斷則導(dǎo)入上一次記錄下的時間字段值以后的數(shù)據(jù)。
失敗經(jīng)驗:網(wǎng)上看到有網(wǎng)友提供了“ff”可以精確到毫秒,代碼如下:
存最后一條數(shù)據(jù)的時間字段值,主要代碼如下:
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,通過設(shè)置參數(shù)值setTimestamp()的方式來進行轉(zhuǎn)換。
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();
總結(jié)
以上是生活随笔為你收集整理的date oracle 显示毫秒_oracle数据库to_date日期格式化到毫秒 | 学步园的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ambari hive mysql_am
- 下一篇: mysql不同服务器数据库查询_不同服务