Tutorial for Oracle DBA
On 1月 1, 2022 by adminDate Functions and Operators.
システムの日付と時刻を確認するには、次の関数を使用します。
CURRENT_DATE :セッション タイム ゾーンの現在の日付を、データ型
DATE
SYSDATE : 現在の日付と時刻を返します。
SYSTIMESTAMP :SYSTIMESTAMP 関数は秒単位の小数部とタイムゾーン
のシステム日付も含めてデータベースの日付として返します。 戻り値のタイプはTIMESTAMP WITH TIME ZONEです。
SYSDATE 例
現在のシステムの日付と時刻を見るには、次のクエリを実行します。
select sysdate from dual;
SYSDATE
——-
8-AUG-03
日付を表示する形式はNLS_DATE_FORMATパラメーターによって決まります。
例えば、NLS_DATE_FORMATを次の形式に設定します。
alter session set NLS_DATE_FORMAT=’DD-MON-YYY HH:MIpm’;
次に次の文を与えます。
select sysdate from dual;
SYSDATE
——————
AUG-2003 03:05pm
NLS_DATE_FORMAT のデフォルト設定は DD-MON-YY
CURRENT_DATE 例
現在のシステム日付と時刻をタイムゾーンとともに確認するには、CURRENT_DATE 関数を使用します
ALTER SESSION SET TIME_ZONE = ‘-4:0’;
alter session set nls_date_format = ‘dd-mon-yyyy hh24:mi:ss’;
select sessiontimezone, current_date from dual;
sessiontimezone current_date
————— ——————–
-04:00 22-apr-2003 14:15:03
alter session set time_zone = ‘-7:0’;
select sessiontimezone, current_date from dual;
sessiontimezone current_date
————— ——————–
-07:00 22-APR-2003 09:15:33
SYSTIMESTAMP 例
現在のシステム日付と時間、タイムゾーンの端数を表示するには、次の文を与える
select systimestamp from dual;
SYSTIMESTAMP
———————————–
22-APR-03 08.00:00:30
SYSTIMESAMP
—————————————
-22-APR-03 09:00:40
-APR-2003 09:00:40
-APR-2003 09:00:40
-APR-2003 09:00:4038.55.538741 AM -07:00
DATE FORMAT MODELS
日付を別のフォーマット文字列に変換するには、日付フォーマットで TO_CHAR 関数を使用できます。 例えば、現在の日を表示するには、次のクエリを実行します。
Select to_char(sysdate,’DAY’) “Today” FROM DUAL;
TODAY
——-
THURSDAY
デフォルトの日付フォーマット以外のフォーマットの文字値を日付値に変換するには、日付フォーマットで TO_DATE 関数を使用します
この「DAY」フォーマットのモデルのように、Oracle では他にも多くの日付フォーマットモデルが利用できます。 次の表は、日付書式モデルの一覧です。
FORMAT |
MEANING |
||
D |
Day of the Week |
||
DD |
Day of the month |
||
DDD |
|||
DAY |
例) 全日。 月曜日」「火曜日」「水曜日」 |
||
DY |
3文字で表す日(例:「月曜日」、「火曜日」、「水曜日」、「月曜日」)。 MON’、’TUE’,’FRI’ |
||
W |
月の週 |
||
WW |
Week of the year |
||
MM |
Month in two digits (1-)1月 2-2月、…12月) |
||
MON |
Jan, Feb, Aprのような3文字の月 |
||
MONTH |
“1月 “のように全月表示する。 「 |
||
RM |
Month in Roman Characters (I-XII, I-Jan, II-Feb, …).XII-Dec) |
||
月の四桁 |
|||
YY |
|||
YYYY |
Full year |
||
YEAR |
“Nineteen Ninety Nine” などで年を表す単語 |
||
HH |
12時間表示 |
||
H12 |
12時間表記 |
||
HH24 |
24 時間表示 |
||
MI |
分 |
||
SS |
秒 |
||
FF |
端数秒 |
||
SSSS |
ミリ秒 |
||
J |
JURI |
FF | FF |
RR |
If the year is less than 50 as the year as 21ST Century.もし年が50より小さければ21世紀と仮定します。 年号が50より大きい場合は、20世紀の年号を仮定します。 |
接尾辞
TH |
1st のように先頭番号に従って th, st, rd または nd を返します。 2nd 3rd 4th |
SP |
先頭番号を綴る |
AM または PM |
時間に従ってAMまたはPMを返す |
SPTH |
スペル順番号を返します。 の場合。 例 第一、第四 |
例えば、次の形式で今日の日付を表示するには
Friday, 7th March, 2014
次の文を与えます
select to_char(sysdate,’Day, ddth Month, yyyy’) “Today” from dual.Of;
TODAY
————————
Friday, 7th March, 2014
例えば、次の形式ですべての従業員の入社日を表示したい場合
Friday, 8th August, 2003
次に、以下のクエリを実行します。
select to_char(hire_date,’Day, ddth Month, yyyy’) from emp;
TO_DATE 例
ToDate関数は文字列を日付値に変換するために使用されます。 例えば、1947年8月15日に何日であったかを見たいとします。 To_Date関数を使用して、まず文字列を日付の値に変換し、次にこの値をto_char関数に渡して日を抽出します。
select to_char(to_date(’15-aug-1947′,’dd-mon-yyyy’),’Day’)
from dual;
TO_CHAR(
——–
Friday
15-aug-1947 から何日経過したかを見るには、次のクエリを実行します
select sysdate-to_date(’15-aug-1947′,’dd-mon-yyyy’) from dual;
次に、今から 45 日後に発生する日付を確認します。
select sysdate+45 from dual;
SYSDATE
——-
06-JUN-2003
ADD_MONTHS
今から6ヶ月後の日付を確認するには、ADD_MONTHS関数を使用します
select ADD_MONTHS(SYSDATE,6) from dual.DからSYSDATEを選択します
select ADD_MONTHS(SYSDATE+45)からSYSDATEを選択します。
ADD_MONTHS
———-
22-OCT-2003
MONTHS_BETWEEN
特定の日付から何ヶ月経過したかを確認するには、MONTHS_BETWEEN関数を使用します。
例えば、1947年8月15日から何ヶ月経過したかを調べるには、次のクエリを実行します。
select months_between(sysdate,to_date(’15-aug-1947′))
from dual;
Months
——
616.553
小数点以下を削除するには truncate 関数を使用します
select trunc(months_between(sysdate,to_date(’15-aug-1947′)))
from dual.SELECT
SELECT trunc(months_between(sysdate,to_date(’15-aug-1947′)))
from dual;
月
——
616
LAST_DAY
指定した日付の月の最終日を見るには、LAST_DAY関数を使用します。
select LAST_DAY(sysdate) from dual;
LAST_DAY
——–
31-AUG-2003
NEXT_DAY
特定の日が次にいつ来るか確認するには、NEXT_DAY 関数を使用します。
例えば、次の土曜日を表示するには、次のクエリを実行します。
select next_day(sysdate) from dual;
NEXT_DAY
———–
09-AUG-2003
EXTRACT
EXTRACT日付関数はdatetimeまたは間隔値式から指定した日付時間フィールドを抽出し値を返します。 TIMEZONE_REGIONまたはTIMEZONE_ABBR(略語)を抽出すると、返される値は適切なタイムゾーン名または略語を含む文字列になります
EXTRACT関数の構文は次のとおりです。
EXTRACT ( YEAR / MONTH / WEEK / DAY / HOUR / MINUTE / TIMEZONE FROM DATE)
Example
次の例は、EXTRACT関数を使って現在の日付から年を抽出した例です。
select extract(year from sysdate) from dual;
EXTRACT
——-
2003
コメントを残す