在Java開(kāi)發(fā)中,,很多時(shí)候我們?yōu)榱朔奖銜?huì)直接使用long型來(lái)保存時(shí)間,可以通過(guò)System.currentTimeMillis()或者是java.util.Date.getTime()來(lái)獲取,;取值為當(dāng)前日期時(shí)間與1970-01-01相差的毫秒數(shù),; 但是在Oracle里面,默認(rèn)沒(méi)有直接提供獲取當(dāng)前時(shí)間的毫秒數(shù)的相關(guān)function,,所以要想在SQL里面獲得毫秒數(shù),,只能自己手動(dòng)計(jì)算下嘍,如下:
不好意思,,上次我寫(xiě)這篇文章時(shí)自己用的時(shí)候只是想在Oracle中計(jì)算毫秒數(shù)并保持在Oracle中,,并沒(méi)有拿到Java中再轉(zhuǎn)換,所以沒(méi)有詳細(xì)測(cè)試,,從而導(dǎo)致某些看我博客的朋友提出不匹配的問(wèn)題,; 現(xiàn)在我測(cè)試了一把,應(yīng)該是時(shí)區(qū)導(dǎo)致的問(wèn)題: 比如我使用GMT+08 北京時(shí)間,,所以按照上面的方式從Oracle中計(jì)算出來(lái)的毫秒數(shù)經(jīng)Java中轉(zhuǎn)換后的日期會(huì)比正常日期大8h,; 結(jié)合自己系統(tǒng)的時(shí)區(qū)對(duì)SQL語(yǔ)句稍作修改即可: CURRENT_DATE CURRENT_MILLI 用簡(jiǎn)單的Java測(cè)試代碼測(cè)試、結(jié)果顯示完全匹配,;Java代碼如下: [java] view plaincopy
|
|