2017-12-27 336 views
0

我有一個帶有時間戳字段的Oracle數據庫。什麼是正確的SQL代碼插入時間戳到這個領域?如何使用Node-Oracle驅動程序插入時間戳?

SQL CLASSIC:

insert into test (time_of_add_doc) 
    values (to_timestamp('22/12/17 09:00:00','DD/MM/RR HH24:MI:SS'); 

(1)一行添加成功!

我想連接到我的數據庫(成功)

oracledb.getConnection({ 
    user: 'ctrm', 
    password: 'ctrm', 
    connectString: "localhost/sig" 
    }, 
    function (err, connection) { 
    if (err) { 
     console.error(err.message); 
     return; 
    } 
    console.log('Connection was successful!'); //Get Connection success 





connection.execute(  


    "INSERT INTO test VALUES (:time_of_add_doc)", { 
    time_of_add_doc: ('22/12/17 09:00:00','DD/MM/RR HH24:MI:SS'), 
    }, 
    function (err, result) { 
     if (err) 
     console.error(err.message); 
     else 
     console.log("Rows inserted " + result.rowsAffected); 
    }); 

回答

1

甲骨文期待一個日期後,從服務器的NodeJS做到這一點,你似乎在傳遞一個數組到一個單一的綁定變量。在節點中構建一個日期,然後綁定它。確保雙方的數據類型是正確的,讓甲骨文與節點之間的接口採用標準的翻譯所需

var time_of_add_doc = new Date(2017, 12, 22, 0, 0, 0, 0) 

connection.execute(  


    "INSERT INTO test VALUES (:time_of_add_doc)", { 
    time_of_add_doc, 
    }, 
    function (err, result) { 
     if (err) 
     console.error(err.message); 
     else 
     console.log("Rows inserted " + result.rowsAffected); 
    }); 

時,有time_of_add_doc: ('22/12/17 09:00:00','DD/MM/RR HH24:MI:SS'),後尾隨逗號。我已經把它留下了,但看起來很奇怪。我無法測試以確保此刻正確無誤

+0

非常感謝!工作的 –

+0

沒問題@Anis;我很高興!你需要尾隨的逗號嗎?我從來沒有真正使用JS。如果這解決了您的問題,請點擊複選標記,考慮[接受](https://meta.stackexchange.com/q/5234/179419)。這向更廣泛的社區表明,您已經找到了解決方案,併爲答覆者和您自己提供了一些聲譽。沒有義務這樣做。 – Ben