Oracle資料庫Date類型欄位讀寫經驗

來源:互聯網
上載者:User

在Oracle資料庫(簡體中文)中,date類型的資料欄位在存取時會比較麻煩,下面把在學習中的一些經驗記錄如下:

1、在簡體中文版的OEM中,從“從表資料編輯器”查看該類型資料顯示為如下格式:

26-八月-2004 03:37:36 PM,但是在往其中插入日期時,如果你輸入:26-八月-2004,應用時會提示:無效的月份,如果你輸入:26-8月-2004,則可以成功——很奇怪。(後面的時間部分可以省略,預設會加上:12:00:00 AM),若要加上時間,則格式為26-8月-2004 03:23:34 下午,要用中文的“下午”,不然就會失敗。

2、在ASP.net應用程式中,如果要擷取使用者輸入的日期,必須將使用者輸入的日期轉換為上面的格式,如:insert into sample values(3422,'ssxxdd',23-4月-2003'),才能成功插入。如果採用函數now擷取目前時間,然後利用insert語句:“insert into mytable (indate) values(” & now & “)”則提示缺少,號??(不知為什嗎?);若把now加上引號則提示格式不正確。只好用程式擷取目前時間,併合並成正確的格式,如:

Dim rz As String = Now.Day.ToString + "-" + Now.Month.ToString + "月-" & Now.Year.ToString

  Dim sqlstr As String = "insert into sample values(3233,'xxddss','" & rz & "')"

但是若加上時間後就不行了,試了很多方式都不行,不知是什麼格式:(

如果是利用過程就沒有這麼多的麻煩啦!比如已經建立了下面的過程:

CREATE OR REPLACE  PROCEDURE "GF"."SAMPLE_ADD" 
     (in_no in   sample.no%type,
 in_message in sample.message%type,
 in_date in date)
as
begin
insert into gf.sample (no,message,indate) values(in_no,in_message,in_date);
end;

那麼在程式中只需直接給in_date參數用now函數賦值就行了:

  Dim cmd As New OracleCommand("sample_add", cn)
        cmd.CommandType = CommandType.StoredProcedure
        cmd.Parameters.Add(New OracleParameter("in_date", OracleType.DateTime))
        cmd.Parameters("in_date").Value = Now

資料表可以擷取完整的當前日期。

呵呵,Oracle真是難搞啊。不過還得繼續琢磨。

又找到一種利用參數插入資料方法

 Dim sqlstr As String = "insert into sample values(:no,:message,:indate)"
        Dim cmd As New OracleCommand(sqlstr, cn)
        cmd.Parameters.Add(New OracleParameter("no", OracleType.Number, 5))
        cmd.Parameters("no").Value = 3222
        cmd.Parameters.Add(New OracleParameter("message", OracleType.VarChar, 100))
        cmd.Parameters("message").Value = "xxxxxxxddddddddddd"
        cmd.Parameters.Add(New OracleParameter("indate", OracleType.DateTime))
        cmd.Parameters("indate").Value = Now

        cmd.ExecuteNonQuery()

注意:和sqlserver的區別在於:@no→:no

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.