簡體   English   中英

如何將unix時間戳轉換為oracle DATE

[英]how to convert unix timestamp to oracle DATE

我在oracle中有一個日期類型,我想在其中插入unix時間戳數據。

我在有效的PL / SQL中使用此SQL查詢。

select TO_DATE('19700101','yyyymmdd') + 1413360712/86400 +TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24 from dual;

輸出是正確的。

2014/10/15 16:11:52

但是當我在Java中使用它時,輸出是不同的。

            String sql = "insert into appliance_application (id, emp_id, typeid, num, spec, action, actiontime, oper_id) VALUES(applianceapplication_seq.nextval, ?, ?, ?, ?, ?, TO_DATE('19700101','yyyymmdd') + 1413360712/86400 +TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24, ?)";
            pstmt = conn.prepareStatement(sql);

            for(int i=0; i < list.size(); i++){
                Itembean ib = (Itembean)list.get(i);
                pstmt.setObject(1, ib.getEmpid());
...   



                pstmt.setObject(5, ib.getAction());
//              pstmt.setLong(6, ib.getActiontime());
//              pstmt.setObject(7, ib.getOper_id());
                pstmt.setObject(6, ib.getOper_id());
                log.info(ib.getActiontime()+ "....");

                pstmt.addBatch();
            }

...

我檢查了插入的數據,發現輸出錯誤。

2014/10/15 8:11:52

我的會話時區是+8。 怎么了?

試試這個代碼:

public Timestamp parseDateToTimestamp(java.util.Date inDate)
{
    if (inDate == null)
        return null;

    return new java.sql.Timestamp(inDate.getTime());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM