2011-10-29 49 views
0

我是Oracle PL/SQL新手。基本上,我有一個表創建如下:使用Oracle SQL * PLus插入格式化的日期函數?

CREATE TABLE MYTABLE (
    ID     VARCHAR2(3 CHAR) NOT NULL PRIMARY KEY, 
    LAST_UPDATE  DATE 
); 

想寫一個腳本,將通過SQL * Plus命令運行:

insert into MYTABLE (
    id, 
    last_update) 
    values (
    sys_guid, 
    --- Date call - what is placed here? 
); 

我能做些什麼,以確保插入日期正確的日期(插入時),這種格式(調用什麼功能):

27月11

需要這個腳本是從SQL中的可執行* Plus的(閱讀日在SQL Developer + SQL * Plus運行的ANSI SQL & PL/SQL之間存在大量的不兼容性)。

感謝您花時間閱讀本文!

回答

4

日期字段沒有格式。使用to_char函數選擇它們時應用格式。所以,你想要做的是

insert into mytable 
    (id, last_update) 
values 
    (sys_guid, SYSDATE); 

你從它使用

select id, to_char(last_update, 'DD-Mon-YY') 
from mytable; 
+0

@OMG選擇,爲什麼你們會不停如何選擇他想要的格式刪除我的指令? –

+0

我首先格式化 - 您尚未編輯(或保存) - 因爲SYSDATE不需要括號。我不知道你的編輯是關於什麼的,但是在處理INSERT時我沒有看到選擇日期格式的任何價值 - OP需要知道TO_DATE而不是TO_CHAR,而且你甚至不需要解釋什麼SYSDATE是... –

+2

不,他沒有。他想插入當前日期(所以他需要知道的是sysdate或now()),並且他希望選定的日期看起來像特定的格式,所以他需要to_char。請停止讓我的答案變得更糟。 –