我想在Oracle 10g中創建表,並且想要指定日期列的日期格式。如果我使用下面的語法:在Oracle中使用日期創建表
create table datetest(
........
startdate date);
那麼日期列將接受的日期格式DD-MON-YY
,我不想。
我想爲我的日期列的語法是MM-DD-YYYY
請讓我知道如何與此進行。
問候,
我想在Oracle 10g中創建表,並且想要指定日期列的日期格式。如果我使用下面的語法:在Oracle中使用日期創建表
create table datetest(
........
startdate date);
那麼日期列將接受的日期格式DD-MON-YY
,我不想。
我想爲我的日期列的語法是MM-DD-YYYY
請讓我知道如何與此進行。
問候,
甲DATE
沒有固有的格式。這不僅僅是一個恰好代表日期的字符串。 Oracle有自己的內部格式來存儲日期值。
當需要將實際日期值轉換爲字符串或反之亦然時,格式纔會起作用,這當然會發生很多事情,因爲我們以交互方式將日期寫爲字符串。
爲您的數據庫默認的日期格式是由設置NLS_DATE_FORMAT
,你可能已經設置爲DD-MON-YYYY
(我認爲這是美國英語語言環境的默認設置)來確定。爲了方便起見,您可以在數據庫級別或單個會話中更改它,但通常情況下更安全的編程實踐是明確的,這樣如果您的代碼在不同的環境中運行,則不會出現錯誤或更糟糕的結果。
明確指定日期值的最簡單方法是日期文字,它是單詞「日期」,後面跟着表示YYYY-MM-DD格式日期的字符串,例如, date '2012-11-13'
。 Oracle解析器直接將其轉換爲相應的內部日期值。
如果你想使用不同的格式,那麼我建議在代碼中明確地使用TO_CHAR/TO_DATE和你想要的格式模型。示例:
INSERT INTO my_table (my_date) VALUES (TO_DATE('11-13-2012', 'MM-DD-YYYY'));
SELECT TO_CHAR(my_date, 'MM-DD-YYYY') FROM my_table;
日期rdo沒有像您建議的格式。它們在內部存儲爲一個7字節的數字。格式化選擇的日期,請使用TO_CHAR(yourdatefield, 'format')
其中格式都在這裏顯示:http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i34924
eg to_char(startdate, 'mm-dd-yyyy')