我試圖從.net在oracle中存儲日期時間值,當日期時間被持久化到數據庫時,時間信息丟失。Oracle時間戳記數據類型缺少時間信息
db是11g,我使用Oracle.DataAccess程序集版本2.111.6.20中的OracleCommand和OracleConnection類。
我在.net中有一個調用oracle存儲過程的數據層。相關日期字段的參數是一個IN參數,它被標記爲TimeStamp數據類型。表中的字段也被定義爲TimeStamp。
// Add the parameter to the OracleCommand
var dt = new DateTime(2011,07,07,10,0,0);
cmd.Parameters.Add("RECEIVED", OracleDbType.TimeStamp, 6, dt, System.Data.ParameterDirection.Input);
cmd.ExecuteNonQuery();
參數的值確實包含時間信息(上午10點),但是當它被保存到數據庫,時間信息丟失。
我的存儲過程看起來是這樣的......
create or replace
PROCEDURE DATA_INSERT
(
ID OUT NUMBER
, RECEIVED IN TIMESTAMP
) AS
BEGIN
ID := MY_SEQUENCE.nextval;
INSERT INTO DATA (ID, RECEIVED) VALUES (ID, RECEIVED);
END DATA_INSERT;
任何想法,爲什麼時間戳正在失去的時間信息?
什麼是列數據類型? – 2011-03-29 18:21:58
@kevincline,列數據類型是時間戳 – vradenburg 2011-03-29 18:33:56