以下は、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日目と見なされます。