Dreamweaver TechniqueJAVA Script サンプル | CSS sample | JAVA Applet sample | Flash Sample
HTML4.0 reference | DynamicHTMLXHTML | XML sample | XSLT sample | RIKO's ASP Trial
ASP ADO リファレンス | PHP関数リファレンス | MySQL関数リファレンス
日付書式を理解する
RIKO's Oracle trial logo

■ 日付書式を理解する

日付書式は、西暦や月日時など、日付に関する値をユーザーの指示通りに表示させるために使用されます。日付書式は、1つ以上の日付書式要素によって構成され、最大22文字までの日付書式フォーマットとして指定できます。
使用例1は、TO_CHAR(日時)関数の第1引数にSYSDATE関数を指定し、さらに第2引数に異なる日付書式を指定して、現在の日付を求める例です。それぞれ違う表示形式で、現在の日付が表示されます。
使用例2は、使用例1と同様に、TO_CHAR(日時)関数の引数にSYSDATE関数と日付書式を指定した例です。返される日付は、対応する日付書式の大文字と小文字の表記に従うため「すべて大文字」「先頭だけ大文字」「すべて小文字」に表記されます。

主な日付書式フォーマット
要素 説明
1 RRRR 西暦を4桁で表示する。2004年の場合「2004」と表示される
2 RR 西暦の下2桁を表示する。2004年の場合「04」と表示される
3 YYYY 西暦を4桁で表示する
4 YYY,YY,Y それぞれ西暦の下3桁、2桁、1桁を表示する
5 YEAR 西暦を振るスペルで表示する
6 MM 月を表示する(01〜12)
7 MON 月の名前の省略形を表示する(JAN〜DEC)
8 MONTH 月の名前を表示する(1月〜12月)。9文字分の長さまで空白が埋められる
9 DDD 年はじめからの日数を表示する(1〜366)
10 DD 月はじめからの日数を表示する(1〜31)
11 D 曜日を表示する(1〜7)。1が日曜日、7が土曜日
12 DAY 曜日を表示する(日曜日〜土曜日)9文字分の長さまで空白が埋められる
13 HH 12時間制で時間を表示する(1〜12)。HH12と同じ
14 HH12 12時間制で時間を表示する(1〜12)。HHと同じ
15 HH24 24時間制で時間を表示する(1〜24)
16 AM, A.M. 午前を表示する
17 PM, P.M 午後を表示する
18 MI 分を表示する(0〜59)
19 SS 秒を表示する(0〜59)
20 SSSSS 午前0時から経過した秒を表示する(0〜86399)
21 FF 小数部を表示する
22 TZD 夏時間の情報を表示する。夏時間の情報を持つタイムゾーン文字列の省略形
23 TZH タイムゾーンの時間の情報を表示する
24 TZM タイムゾーンの分の情報を表示する
25 TZR タイムゾーン地域の情報を表示する

例1:現在の日付時間を求める

SQL> SELECT SYSDATE AS "現在" FROM DUAL;

現在
--------------
2008/04/01 13:10:01

1行が選択されました

SQL> SELECT TO_CHAR(SYSDATE, 'YYMMDDHHMISS') AS "現在" FROM DUAL;

現在
--------------
08040101011001

1行が選択されました

例2:現在の日付時間と、特定の日付時間との差を求める

SQL> SELECT SYSDATE AS "現在",
2 SYSDATE - TO_DATE('2003/01/01 100:00:00', 'YYYY/MM/DD HH24:MI:SS') AS "差分"
3 FROM DUAL;

現在          差分
------------------------------------------------
2004/01/01 15:00:00  365.625

1行が選択されました

例3:SYSDATE関数自身の差を求める

SQL> SELECT SYSDATE - SYSDATE AS "差" FROM DUAL;


--------------
  0

1行が選択されました

■ 日付時間関数を使った演算

1. 今月のカレンダーを表示する

SELECT TRUNC(SYSDATE, 'MM')+ROWNUM-1 AS "カレンダー"
FROM ( SELECT 1 FROM DUAL UNION ALL
SELECT 2 FROM DUAL UNION ALL
SELECT 3 FROM DUAL UNION ALL
SELECT 4 FROM DUAL UNION ALL
SELECT 5 FROM DUAL UNION ALL
SELECT 6 FROM DUAL UNION ALL
SELECT 7 FROM DUAL UNION ALL
SELECT 8 FROM DUAL UNION ALL
SELECT 9 FROM DUAL UNION ALL
SELECT 10 FROM DUAL UNION ALL
SELECT 11 FROM DUAL UNION ALL
SELECT 12 FROM DUAL UNION ALL
SELECT 13 FROM DUAL UNION ALL
SELECT 14 FROM DUAL UNION ALL
SELECT 15 FROM DUAL UNION ALL
SELECT 16 FROM DUAL UNION ALL
SELECT 17 FROM DUAL UNION ALL
SELECT 18 FROM DUAL UNION ALL
SELECT 19 FROM DUAL UNION ALL
SELECT 20 FROM DUAL UNION ALL
SELECT 21 FROM DUAL UNION ALL
SELECT 22 FROM DUAL UNION ALL
SELECT 23 FROM DUAL UNION ALL
SELECT 24 FROM DUAL UNION ALL
SELECT 25 FROM DUAL UNION ALL
SELECT 26 FROM DUAL UNION ALL
SELECT 27 FROM DUAL UNION ALL
SELECT 28 FROM DUAL UNION ALL
SELECT 29 FROM DUAL UNION ALL
SELECT 30 FROM DUAL UNION ALL
SELECT 31 FROM DUAL)
WHERE ROWNUM <= TO_NUMBER(TO_CHAR(LAST_DAY(SYSDATE), 'DD')

2. 日付と日付の間隔の月数を求める

MONTHS_BETWEEN(d1, d2)

3. 生年月日から年齢を求める

TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(dstr, datefmt))/12)

4. 日付時刻を同じ時点の別のタイムゾーン値に変更する

NEW_TIME(d, timezone1, timezone2)

<< 戻る 

R HOUSE | RIKO's Trial Page | Shirley's Pettit Case | Shirley's i-box | Shirley's little box | RIKOの保管庫
S