我正在使用Oracle SQL Developer,我想要一个法语格式的日期,如: 31-DÉC-14
我试过了:
ALTER SESSION SET NLS_LANGUAGE = 'FRENCH';
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YY';
在此之后,当我在表格中插入日期值时,它显示如下:
31-DÉC. -14
有人可以告诉我原因吗?
答案 0 :(得分:1)
select to_char(add_months(TRUNC(sysdate,'YYYY'),level),'DD-MON-YY') as withoutFM,
to_char(add_months(TRUNC(sysdate,'YYYY'),level),'FMDD-MON-YY') as withFM
from dual
connect by level <=12
<强>结果:强>
WITHOUTFM WITHFM
01-FÉVR.-14 1-FÉVR.-14
01-MARS -14 1-MARS-14
01-AVR. -14 1-AVR.-14
01-MAI -14 1-MAI-14
01-JUIN -14 1-JUIN-14
01-JUIL.-14 1-JUIL.-14
01-AOÛT -14 1-AOÛT-14
01-SEPT.-14 1-SEPT.-14
01-OCT. -14 1-OCT.-14
01-NOV. -14 1-NOV.-14
01-DÉC. -14 1-DÉC.-14
01-JANV.-15 1-JANV.-15
月份的最大为5个字符(例如:FÉVR。)。因此,在打印时,为了保持固定格式,Oracle会将空间加载到小于最大可能长度的空间
因此,在您的情况下,在追加空格后,DÉC.
会转换为DÉC.
。
将FM
(格式掩码)添加到日期格式会消除它!