在我的應用我設置使用下面的命令格式化由程序返回的所有日期的會議NLS_DATE_FORMAT甲骨文NLS_DATE_FORMAT:工作不正常
alter session set nls_date_format='DY DDTH MON YYYY';
這應返回的日期是這樣的:「週五23 2013' 年8月
但是,如果我運行下面的查詢:
select SYSDATE from dual;
我得到以下格式的日期: 'FRI 2013年8月23日'。注意'23'後缺少'rd'。
如果我運行下面的查詢:
select to_char(sysdate, 'DY DDTH MON YYYY') from dual;
日期不回來所需的格式。那麼爲什麼'TH'日期格式參數在通過NLS_DATE_FORMAT設置時不起作用?是否還有其他日期格式參數在使用TO_CHAR時可以工作,但不能通過NLS_DATE_FORMAT?
感謝您的幫助
順便說一下,我使用Oracle 11.2客戶端和數據庫。
UPDATE
我在SQL Developer中運行了alter session命令。我在SQL PLUS中試過這個,它以正確的格式返回日期。但是,現在我遇到了插入格式化日期的問題。
如果我這樣做(設置NLS_DATE_FORMAT如上)之後,我收到了「ORA-01861的文字不匹配格式字符串」錯誤:
INSERT INTO DATE_TABLE (MY_DATE_COL) VALUES ('Thu 18th Apr 2013');
我預料到設置NLS_DATE_FORMAT後工作?
如果我改變插入語句:
INSERT INTO DATE_TABLE (MY_DATE_COL) VALUES ('Thu 18 Apr 2013');
然後它的工作!爲什麼是這樣?
DY DDTH MON YYYY – user1578653