以下は、OracleDatabaseの日付から日を返すために使用できる2つの関数です。
EXTRACT()
機能
EXTRACT(datetime)
関数は、日時値からさまざまな日時部分を抽出するために使用されます。これには日も含まれます。
次に例を示します:
SELECT EXTRACT(DAY FROM DATE '2037-10-25')
FROM DUAL;
結果:
25
DAY
日付から日の部分を抽出するキーワード。関連するキーワードに変更することで、他の日付部分を取得できます。たとえば、YEAR
、MONTH
、HOUR
、MINUTE
、など。
TIMESTAMP
などの他の日時値で関数を使用することもできます。 、など。
TO_CHAR(datetime)
機能
TO_CHAR(datetime)
を使用することもできます 日付から日を取得するための代替方法として機能します。
この関数は、最初の引数として日時または間隔の値を受け入れ、2番目の引数としてフォーマットモデルを受け入れます。次に、関数は値をVARCHAR2
のデータ型に変換します 指定された形式で。
formatモデルは、datetime/interval値を返すフォーマットを指定します。フォーマットモデルは、1つ以上の
日のみを返したい場合は、フォーマット要素の1つを使用して日を抽出できます。
月の日
月の日(1〜31の間)を取得するには、DD
を使用します フォーマット要素:
SELECT TO_CHAR(DATE '2037-10-03', 'DD')
FROM DUAL;
結果:
03
終日の名前
完全な日の名前を取得するには、DAY
を使用します :
SELECT TO_CHAR(DATE '2037-10-03', 'DAY')
FROM DUAL;
結果:
SATURDAY
短い日の名前
省略された日の名前を取得するには、DY
を使用します :
SELECT TO_CHAR(DATE '2037-10-03', 'DY')
FROM DUAL;
結果:
SAT
年の日
年間通算日(1〜366)を取得するには、DDD
を使用します フォーマット要素:
SELECT TO_CHAR(DATE '2037-10-03', 'DDD')
FROM DUAL;
結果:
276
曜日
曜日(1〜7)を取得するには、D
を使用します フォーマット要素:
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;
結果:
6
このフォーマット要素は、セッションのNLSテリトリーによって異なります。 NLS_TERRITORY
の値 パラメータはAUSTRALIA
です 、したがって、土曜日は週の6日目と見なされます。
NLS_TERRITORY
の値を変更するとどうなりますか AMERICA
へのパラメータ 同じクエリをもう一度実行します:
ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT TO_CHAR(DATE '2037-10-03', 'D')
FROM DUAL;
結果:
7
今回は土曜日が週の7日目と見なされます。