Oracle Databaseでは、TO_CHAR(datetime)
を使用できます。 日時の値から世紀を返す関数。
これを行うには、CC
のいずれかを使用できます format要素、またはSCC
フォーマット要素。これらを他のフォーマット要素と組み合わせて、序数の表示、世紀の綴りなどを行うことができます。
例
CC
を使用する例を次に示します。 日付値から世紀を返すformat要素:
SELECT TO_CHAR(DATE '2030-12-30', 'CC')
FROM DUAL;
結果:
21
ネガティブセンチュリー
SCC
を使用できます 負の日付を渡すときにマイナス記号を含めるように要素をフォーマットします:
SELECT TO_CHAR(DATE '-2030-12-30', 'SCC')
FROM DUAL;
結果:
-21
序数
TH
を追加できます 世紀の序数を返すformat要素。
SELECT TO_CHAR(DATE '2030-12-30', 'CCTH')
FROM DUAL;
結果:
21ST
「Century」という単語を追加するために任意のテキストを追加することもできます:
SELECT TO_CHAR(DATE '2030-12-30', 'CCTH "Century"')
FROM DUAL;
結果:
21ST Century
テキストは二重引用符で囲まれていることに注意してください。
必要に応じて大文字を使用できます:
SELECT TO_CHAR(DATE '2030-12-30', 'Ccth "Century"')
FROM DUAL;
結果:
21ST Century
フォーマットモデルの最初の文字のみを大文字にしたことに注意してください。つまり、Ccth
を使用したということです CCth
の代わりに 。 CCth
と思うかもしれませんが、 小文字の序数になるはずですが、それは機能しません。これを行うと、次のようになります。
SELECT TO_CHAR(DATE '2030-12-30', 'CCth "Century"')
FROM DUAL;
結果:
21ST Century
基本的に、フォーマットモデルの最初の2文字が大文字の場合、結果は大文字になります。したがって、タイトルケースを作成するには、フォーマットモデルの最初の文字のみを大文字にします。
スペルセンチュリー
SP
を追加できます 世紀を綴るフォーマット要素:
SELECT TO_CHAR(DATE '2030-12-30', 'CCTHSP "Century"')
FROM DUAL;
結果:
21ST Century
また、必要に応じて大文字と小文字を区別できます:
SELECT TO_CHAR(DATE '2030-12-30', 'Ccthsp "Century"')
FROM DUAL;
結果:
21ST Century
TH
は省略できます 序数が必要ない場合は、フォーマット指定子:
SELECT TO_CHAR(DATE '2030-12-30', 'Ccsp')
FROM DUAL;
結果:
21
20世紀と21世紀
日付が20世紀と21世紀のどちらであると見なされるかについては、次の規則が適用されます。
- 4桁の年の最後の2桁が01から99(両端を含む)の場合、世紀はその年の最初の2桁より1つ大きくなります。
- 4桁の年の最後の2桁が00の場合、世紀はその年の最初の2桁と同じです。
同じ概念が、13世紀、30世紀などの他の世紀にも当てはまります。
例:
SELECT
TO_CHAR(DATE '1999-12-30', 'CC') AS "1999",
TO_CHAR(DATE '2000-12-30', 'CC') AS "2000",
TO_CHAR(DATE '1299-12-30', 'CC') AS "1299",
TO_CHAR(DATE '1300-12-30', 'CC') AS "1300",
TO_CHAR(DATE '2999-12-30', 'CC') AS "2999",
TO_CHAR(DATE '3000-12-30', 'CC') AS "3000"
FROM DUAL;
結果:
1999 2000 1299 1300 2999 3000 _______ _______ _______ _______ _______ _______ 20 20 13 13 30 30
Oracleで日時値をフォーマットするために使用できるフォーマット要素は他にもたくさんあります。完全なリストについては、Oracleの日時フォーマット要素のリストを参照してください。