Oracle は、さまざまなエンタープライズ レベルのアプリケーションで広く使用されている、人気のあるリレーショナル データベース管理システムです。 Oracle では、多くのビジネス機能の実装が日付と時刻に依存するため、日付と時刻は非常に重要なデータ型です。 Oracle は複数の日付と時刻の形式をサポートしています。この記事では、Oracle で日付と時刻の形式をクエリして使用する方法を紹介します。
1. Oracle の日付と時刻のデータ型
Oracle は、DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE、および TIMESTAMP WITH LOCAL TIME ZONE という 4 つの日付と時刻のデータ型をサポートしています。
- DATE: 最も一般的に使用される日付と時刻のデータ型で、年、月、日、時、分、秒を含む日付と時刻を保存でき、演算、比較、および書式設定をサポートします。
- TIMESTAMP: DATE よりも正確な日付と時刻のデータ型で、ナノ秒の精度をサポートします。
- TIMESTAMP WITH TIME ZONE: タイムゾーン情報は TIMESTAMP に基づいて追加されます。
- TIMESTAMP WITH LOCAL TIME ZONE: TIMESTAMP WITH TIME ZONE と似ていますが、時間をデータベースのタイムゾーンの現地時間に変換します。
2. Oracle の日付と時刻の形式クエリ
日付と時刻のデータをクエリするときは、TO_CHAR 関数を使用して日付と時刻を特定の形式に変換する必要があります。一般的に使用される Oracle の日付と時刻の形式は次のとおりです。
日付形式:
- YYYY: 年、4 桁 (例: 2021)
- YY: Year 、2 桁で表されます (例: 21)
- MM: 月、数字で表されます (例: 09)
- MON: 月、略語で表されます (例: SEP)
- MONTH : 月、フルネームで表現 (例: SEPTEMBER)
- DD: 日、数字で表現 (例: 08)
- DY または DAY: 日略語またはフルネームで表される曜日 (例: MON または MONDAY )
時間形式:
- HH24: 時間、24 時間形式、デジタル表現
- MI: 分、デジタル表現
- SS: 秒、数値表現
例:
- 現在の日付と時刻をクエリします。 : SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
- 現在の日付をクエリします: SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL;
- 現在時刻のクエリ: SELECT TO_CHAR(SYSDATE,'HH24:MI:SS' ) FROM DUAL;
- 1 週間前の日付のクエリ: SELECT TO_CHAR(SYSDATE-7,'YYYY-MM -DD') FROM DUAL;
- 現在の月のクエリ: SELECT TO_CHAR(SYSDATE,' MM') FROM DUAL;
- 現在の四半期のクエリ: SELECT TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE, 'Q'),2),'Q') FROM DUAL;
- 現在の年のクエリ: SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;
- 明日の日付のクエリ: SELECT TO_CHAR (SYSDATE 1,'YYYY-MM-DD') FROM DUAL;
- 今月の日付をクエリします その日の日付: SELECT TO_CHAR(TRUNC(SYSDATE,'MONTH'),'YYYY-MM- DD') FROM DUAL;
- 前月の最終日の日付をクエリします: SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE ,-1)),'YYYY-MM-DD') FROM DUAL;
#3. 日付と時刻の関数の使用
##TO_CHAR 関数に加えて、Oracle では、日付と時刻のデータをクエリおよび処理するときに使用できる多くの日付と時刻の関数も提供しています。
ADD_MONTHS(date,n): 日付に n か月を加算します。n か月を減算するには、n を負の数にすることもできます。
- MONTHS_BETWEEN(date1,date2): date1 と date2 の間の月数の差を計算します。
- TRUNC(date, format): 指定された形式に従って日付を切り捨てます。日付間隔や比較の計算によく使用されます。
- LAST_DAY(日付): 日付が位置する月の最後の日を返します。
- EXTRACT(unit FROM date): 日付から指定した時間単位(年、月、日、時、分、秒、曜日など)を抽出します。
- 例:
従業員の入社日からの経過日数をクエリします: SELECT MONTHS_BETWEEN(SYSDATE,hire_date)/12 FROMemployees WHEREemployee_id=100;
- 今月の誕生日を持つ従業員をクエリします: SELECT * FROM 従業員 WHERE EXTRACT(MONTH FROM Birth_date) = EXTRACT(MONTH FROM SYSDATE);
- 従業員の次の誕生日までの残り日数をクエリします: SELECT TRUNC( MONTHS_BETWEEN(TRUNC(SYSDATE,'YYYY'),TRUNC(生年月日,'YYYY'))/12)
365 TRUNC(MOD(MONTHS_BETWEEN(TRUNC(SYSDATE,'YYYY'),TRUNC(生年月日,') YYYY') ),1)- 12.0/11*365) FROM 従業員 WHERE 従業員 ID=100;
上記は、日付と時刻のクエリと関数の一般的に使用される例のほんの一部です。ニーズに応じて特定の柔軟な使用と組み合わせに基づいている必要があります。
概要:
Oracle の日付と時刻の形式クエリはデータベース開発に不可欠な部分であり、正しい日付と時刻の形式と計算方法により、ビジネス データの正確性と安定性を確保できます。この記事では、Oracle のデータ型、日時形式、関数について詳しく紹介し、皆様の実際の日時クエリや処理の一助になれば幸いです。
以上がOracle 時間形式のクエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。