Oracle Databaseで、TO_CHAR()
を使用する場合 日付から曜日名を返す関数。指定された言語とカレンダーで有効な最長の曜日名よりも短い場合は、曜日名にパディングが追加されます。
これがデフォルトの動作です。ただし、必要に応じてこれを変更できます。
このパディングを抑制するには、曜日名のformat要素の前にfm
を追加するだけです。 。
例
次のコードを実行するとします。
SELECT
TO_CHAR(date '2030-03-08', 'Day, DD Month YYYY')
FROM DUAL;
結果:
Friday , 08 March 2030
日の名前と月の名前に末尾のスペースが追加されていることがわかります。
fm
を使用できます このスペースを抑制するためのフォーマット修飾子:
SELECT
TO_CHAR(date '2030-03-08', 'fmDay, DD Month YYYY')
FROM DUAL;
結果:
Friday , 08 March 2030
問題は解決しました。
これには、月の名前の末尾のスペースを抑制するという副次的な利点もあることに注意してください。
また、日番号の先行ゼロも抑制しました。
複数のfm
を使用できます 抑制したいパディングをより具体的にするための修飾子。各fm
私たちのフォーマットモデルでは、塗りつぶしモードのオンとオフを切り替えます。
日と月の名前の末尾のスペースを抑制したいが、日番号の先行ゼロを保持したいとします。その場合、次のことができます。
SELECT
TO_CHAR(date '2030-03-08', 'fmDay, fmDD fmMonth YYYY')
FROM DUAL;
結果:
Friday , 08 March 2030
3番目のfm
を使用した理由 (MONTH
の前 )は、2番目のfm
後続のすべてのフォーマット要素のパディングを再度有効にしました。これにより、その月の末尾のスペースが保持されます。
意味は次のとおりです:
SELECT
TO_CHAR(date '2030-03-08', 'fmDay, fmDD Month YYYY')
FROM DUAL;
結果:
Friday , 08 March 2030
この場合、パディングは曜日名から抑制され、日番号、月、年に対して再度有効になりました。
幸い、fm
をいくつでも追加できます 目的の結果を得る必要があるため、修飾子。