Plsql-date-time
PL/SQL-日付と時刻
この章では、PL/SQLの日付と時刻について説明します。 PL/SQLには日付と時刻に関連するデータ型の2つのクラスがあります-
- 日時データ型
- 間隔データ型
日時データ型は-
- DATE
- タイムスタンプ
- タイムゾーン付きタイムスタンプ
- 現地時間帯のタイムスタンプ
間隔データ型は-
- 間隔月
- 間隔日から2日
日時および間隔データ型のフィールド値
Field Name | Valid Datetime Values | Valid Interval Values |
---|---|---|
YEAR | -4712 to 9999 (excluding year 0) | Any nonzero integer |
MONTH | 01 to 12 | 0 to 11 |
DAY | 01 to 31 (limited by the values of MONTH and YEAR, according to the rules of the calendar for the locale) | Any nonzero integer |
HOUR | 00 to 23 | 0 to 23 |
MINUTE | 00 to 59 | 0 to 59 |
SECOND |
00 to 59.9(n), where 9(n) is the precision of time fractional seconds 9(n)部分はDATEには適用されません。 |
0 to 59.9(n), where 9(n) is the precision of interval fractional seconds |
TIMEZONE_HOUR |
-12 to 14 (range accommodates daylight savings time changes) DATEまたはTIMESTAMPには適用されません。 |
Not applicable |
TIMEZONE_MINUTE |
00 to 59 DATEまたはTIMESTAMPには適用されません。 |
Not applicable |
TIMEZONE_REGION | Not applicable for DATE or TIMESTAMP. | Not applicable |
TIMEZONE_ABBR | Not applicable for DATE or TIMESTAMP. | Not applicable |
日時のデータ型と関数
以下は、日時データ型です-
DATE
文字と数字の両方のデータ型で日付と時刻の情報を保存します。 世紀、年、月、日付、時、分、秒に関する情報で構成されています。 次のように指定されます-
タイムスタンプ
これはDATEデータ型の拡張です。 DATEデータ型の年、月、日、および時、分、秒の値を保存します。 正確な時間値を保存するのに便利です。
タイムゾーン付きタイムスタンプ
これは、タイムゾーン地域名またはタイムゾーンオフセットを値に含むTIMESTAMPのバリアントです。 タイムゾーンオフセットは、現地時間とUTCの差(時間と分)です。 このデータ型は、地理的領域全体で日付情報を収集および評価するのに役立ちます。
現地時間帯のタイムスタンプ
値にタイムゾーンオフセットを含むTIMESTAMPの別のバリアントです。
次の表は、日時関数を提供します(xは日時値を持ちます)-
S.No | Function Name & Description |
---|---|
1 |
ADD_MONTHS(x, y);
|
2 |
LAST_DAY(x); 月の最後の日を返します。 |
3 |
MONTHS_BETWEEN(x, y);
|
4 |
NEXT_DAY(x, day);
|
5 |
NEW_TIME; ユーザーが指定したタイムゾーンから時刻/日の値を返します。 |
6 |
ROUND(x [, unit]);
|
7 |
SYSDATE(); 現在の日時を返します。 |
8 |
TRUNC(x [, unit]);
|
タイムスタンプ関数(xはタイムスタンプ値を持ちます)-
S.No | Function Name & Description |
---|---|
1 |
CURRENT_TIMESTAMP(); 現在のセッション時間とセッションタイムゾーンを含むTIMESTAMP WITH TIME ZONEを返します。 |
2 | *EXTRACT(\{ YEAR |
MONTH | DAY |
HOUR | MINUTE |
SECOND } | \{ TIMEZONE_HOUR |
TIMEZONE_MINUTE } | \{ TIMEZONE_REGION |
} TIMEZONE_ABBR ) FROM x)* x から年、月、日、時間、分、秒、またはタイムゾーンを抽出して返します。 |
3 |
FROM_TZ(x, time_zone); TIMESTAMP xとtime_zoneで指定されたタイムゾーンをTIMESTAMP WITH TIMEZONEに変換します。 |
4 |
LOCALTIMESTAMP(); セッションタイムゾーンの現地時間を含むTIMESTAMPを返します。 |
5 |
SYSTIMESTAMP(); 現在のデータベース時刻とデータベースタイムゾーンを含むTIMESTAMP WITH TIME ZONEを返します。 |
6 |
SYS_EXTRACT_UTC(x); TIMESTAMP WITH TIMEZONE xをUTCの日付と時刻を含むTIMESTAMPに変換します。 |
7 |
TO_TIMESTAMP(x, [format]); 文字列xをTIMESTAMPに変換します。 |
8 |
例
次のコードスニペットは、上記の関数の使用を示しています-
例1
出力-
例2
出力-
例3
出力-
例4
出力-
間隔のデータ型と関数
間隔データ型は次のとおりです-
- IINTERVAL YEAR TO MONTH-YEARおよびMONTH日時フィールドを使用して期間を保存します。 *INTERVAL DAY TO SECOND-日、時間、分、秒の観点から一定期間を保存します。
インターバル関数
S.No | Function Name & Description |
---|---|
1 |
数値xをINTERVAL DAY TO SECONDに変換します。 |
2 |
NUMTOYMINTERVAL(x, interval_unit); 数値xをINTERVAL YEAR TO MONTHに変換します。 |
3 |
TO_DSINTERVAL(x); 文字列xをINTERVAL DAY TO SECONDに変換します。 |
4 |
TO_YMINTERVAL(x); 文字列xをINTERVAL YEAR TO MONTHに変換します。 |