每當你面對的DATE
或TIMESTAMP
數據類型,應始終插入DATE
或TIMESTAMP
值。您不應該插入字符串並依靠隱式轉換將字符串轉換爲DATE
或TIMESTAMP
。您應該明確地撥打TO_DATE
或TO_TIMESTAMP
。您的INSERT
聲明還應明確列出您要插入的列的名稱。
你會希望你的INSERT
語句看起來像這樣
INSERT INTO FLIGHT(<<list of columns>>)
VALUES (1,
'London Heathrow',
'Miami Airport',
to_timestamp('03/18/2012 02:35 AM', 'MM/DD/YYYY HH:MI AM'),
to_timestamp('04/18/2012 13:35 PM', 'MM/DD/YYYY HH:MI AM'));
您可以調整的SQL * Plus如何通過改變格式掩碼顯示在一個特定的列中的數據。例如,
SQL> column dept_time format a30;
SQL> column arrv_time format a30;
會導致SQL * Plus的顯示在30個水平字符(您當前NLS_TIMESTAMP_FORMAT
似乎產生28個字符串,如果你改變NLS_TIMESTAMP_FORMAT
,您可能要更改列的寬度都DEPT_TIME
和ARRV_TIME
你'要求顯示SQL * Plus)。
我使用'TIMESTAMP(0)',但不知何故dept_time列有一個巨大的空間,看到上面的PIC,我怎樣才能擺脫這種? – 2012-03-18 05:12:38
您的編輯提出了另一個問題。 SO旨在爲重點突出的問題提供獨立的答案。如果您有新問題,請提出一個新問題。問問題不收費,而且你更有可能得到答案(儘管我注意到賈斯汀在他的回答中實際上已經解決了你的第二個問題)。 – APC 2012-03-18 09:15:09
好吧生病記住,但是這兩個有點相關,我沒有看到重點開了一個新的問題,謝謝賈斯汀他是一個王牌;) – 2012-03-18 12:30:26