SQL 解説書

日付 / 時刻の値のストリング表記

データ・タイプが DATE、TIME、または TIMESTAMP の値は、 SQL ユーザーには見えない内部形式で表されます。 ただし、日付、時刻、 およびタイム・スタンプは文字ストリングで表すこともできます。 データ・タイプが DATE、TIME、または TIMESTAMP である定数や変数がないため、 これらの表示は SQL ユーザーに直接かかわってきます。 したがって、日付 / 時刻の値を取り出すには、 この値を文字ストリング変数に割り当てる必要があります。 CHAR 関数を使用すると、 日付 / 時刻値をストリング表記に変更することができます。 通常、文字ストリング表記は、プログラムがプリコンパイルされるとき、 またはデータベースにバインドされるときに、 DATETIME オプションの指定によってオーバーライドされるのでない限り、 データベースの国別コードに関連する日付 / 時刻の値のデフォルトの形式になります。

ラージ・オブジェクト・ストリングや LONG VARCHAR は、 その長さに関係なく、日付 / 時刻値を表すストリングとして使用することはできません。 そのように使用した場合はエラー (SQLSTATE 42884) になります。

日付 / 時刻の値の有効なストリング表記が内部の日付 / 時刻の値の操作に使用される場合、 ストリング表記が日付、時刻、またはタイム・スタンプの内部形式に変換されてから、 操作が実行されます。 次に、日付 / 時刻の値の有効なストリング表記の定義について説明します。

日付ストリング

日付のストリング表示は、数字で始まり、 長さが 8 バイト以上の文字ストリングです。 後書きブランクを含めることができます。 月と日の部分の先行ゼロは省略可能です。

日付を示す有効な文字列形式を、表 3 に示します。 各形式の名前を示し、対応する省略形とその使用例も示します。

表 3. 日付のストリング表記形式
形式名 省略形 日付形式
国際標準化機構 ISO yyyy-mm-dd 1991-10-27
IBM USA 標準規格 USA mm/dd/yyyy 10/27/1991
IBM 欧州標準規格 EUR dd.mm.yyyy 27.10.1991
日本工業規格西暦 JIS yyyy-mm-dd 1991-10-27
地域別定義 (DB2 データ・リンク・マネージャー 概説およびインストール を参照) LOC データベースの国コードに依存

時刻ストリング

時刻のストリング表記は、数字で始まり、 長さが 4 バイト以上の文字ストリングです。 後書きブランクを含めることができます。 時刻の時部分の先行ゼロは省略可能であり、 秒は完全に省略することができます。 秒が省略されている場合は、暗黙のうちに 0 秒とみなされます。 したがって、13.30 は 13.30.00 に等しくなります。

時刻を示す有効なストリング形式を、表 4 に示します。 各形式の名前を示し、対応する省略形とその使用例も示します。

表 4. 時刻のストリング表記形式
形式名 省略形 時刻形式
国際標準化機構2 ISO hh.mm.ss 13.30.05
IBM USA 標準規格 USA hh:mm AM または PM 1:30 PM
IBM 欧州標準規格 EUR hh.mm.ss 13.30.05
日本工業規格西暦 JIS hh:mm:ss 13:30:05
地域別定義 (DB2 データ・リンク・マネージャー 概説およびインストール を参照) LOC データベースの国コードに依存

注:

  1. ISO、EUR および JIS 形式では、.ss (もしくは :ss) は省略可能です。

  2. 最近、国際標準化機構は、 時刻形式を日本工業規格 (西暦) と同じ形式に変更しました。 このため、アプリケーションで現行の国際標準化機構形式が必要な場合は、 JIS を使用してください。

  3. USA 時刻ストリング形式の場合、分の指定を省略できます。 その場合、00 分とみなされます。 したがって、1 PM は 1:00 PM に等しくなります。

  4. USA 時刻形式では、時を 13 以上にすることはできず、 00:00 AM という特殊な場合を除いて、0 にすることはできません。 AM および PM の前にはスペースが 1 個入れられます。 24 時間制の ISO 形式を使用した場合、 USA 形式と 24 時間制との対応は次のようになります。

    12:01 AM から 12:59 AM は、00.01.00 から 00.59.00 に対応します。
    01:00 AM から 11:59 AM は、01.00.00 から 11.59.00 に対応します。
    12:00 PM (正午) から 11:59 PM は、12.00.00 から 23.59.00 に対応します。
    12:00 AM (深夜) は 24.00.00 に対応し、00:00 AM (深夜) は 00.00.00 に対応します。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]