date oracle 显示毫秒_Oracle中根据Date型转换成Java对应的long型毫秒数
在Java開發中,很多時候我們為了方便會直接使用long型來保存時間,可以通過System.currentTimeMillis()或者是java.util.Date.getTime()來獲取;取值為當前日期時間與1970-01-01相差的毫秒數;
但是在Oracle里面,默認沒有直接提供獲取當前時間的毫秒數的相關function,所以要想在SQL里面獲得毫秒數,只能自己手動計算下嘍,如下:
SQL>?select?to_char(sysdate,'yyyy-mm-dd?hh24:mi:ss')?current_date,?(sysdate-?to_date('1970-01-01','yyyy-mm-dd'))?*?86400000?current_milli?from?dual;
CURRENT_DATE????????CURRENT_MILLI
-------------------?????????????? -------------
2009-01-06?14:00:09????? 1231250409000
不好意思,上次我寫這篇文章時自己用的時候只是想在Oracle中計算毫秒數并保持在Oracle中,并沒有拿到Java中再轉換,所以沒有詳細測試,從而導致某些看我博客的朋友提出不匹配的問題; 現在我測試了一把,應該是時區導致的問題: 比如我使用GMT+08 北京時間,所以按照上面的方式從Oracle中計算出來的毫秒數經Java中轉換后的日期會比正常日期大8h;
結合自己系統的時區對SQL語句稍作修改即可:
SQL> select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') current_date,
2???????? (sysdate - 8 / 24 - to_date('1970-01-01', 'yyyy-mm-dd')) * 86400000 current_milli
3??? from dual;
CURRENT_DATE??????? CURRENT_MILLI
-------------------???????? -------------
2009-08-25 17:33:17 1251192797000
用簡單的Java測試代碼測試、結果顯示完全匹配;Java代碼如下:
Date?date?=?new?Date(1251192797000L);?//2009-08-25?17:33:17
System.out.println(date);
總結
以上是生活随笔為你收集整理的date oracle 显示毫秒_Oracle中根据Date型转换成Java对应的long型毫秒数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡逾期了还能办别的信用卡吗?三招提高
- 下一篇: linux下centos安装mysql数