付録J 日付時刻データの形式(SORT EEの機能)

日付時刻データについて説明します。

キー・項目属性「h」の日付時刻は,日付と時刻を組み合わせた数字データです。

データ形式

データ形式を次に示します。

[図データ]

入力時の注意事項
入力時の注意事項を次に示します。
  • 入力データのタイムゾーン指定子(TZD)は参照しません。実行システムのローカルタイムとして扱います。
  • タイムゾーン指定子(TZD)までを日付時刻データとして扱います。入力データに「Z」,「+」および時刻以降の「-」を検知した場合は,以降のデータは無視されます。
  • 入力データは項目の区切り文字で区切り,それぞれのデータの左端をそろえて入力します。
  • 指定された桁(引用符,項目区切り文字,および桁修飾文字は含まない)を超えるデータが入力された場合,指定された桁数を超えた部分(後ろ)のデータを無視します。
  • 指定された桁(引用符,項目区切り文字,および桁修飾文字は含まない)よりも少ない桁のデータが入力された場合は,埋め字を仮定し指定された桁数に調整します。調整する位置および埋め字は,データの有無および書式によって異なります。
日付時刻データの端数処理
日付時刻データの端数処理を次の表に示します。
書式桁不足入力データなし※8
埋め字の位置埋め字データ
日付桁修飾文字ありエラー※1※2エラー※1※3
前側※6数字「0」01月を仮定
前側※6数字「0」01日を仮定
桁修飾文字なし入力データが4桁未満エラー※1※4エラー※1※5
入力データが4桁以上後ろ側※7数字「0」
時刻桁修飾文字あり前側数字「0」00時を仮定
前側数字「0」00分を仮定
前側数字「0」00秒を仮定
ミリ秒後ろ側数字「0」000ミリ秒を仮定
桁修飾文字なし後ろ側数字「0」00時00分00秒
000ミリ秒を仮定
(凡例)
-:該当なし
注※1
キー指定の場合は,KBLS1211-Eメッセージが表示されてエラーになります。
比較項目指定の場合は,KBLS1320-Eメッセージが表示されてエラーになります。
注※2
コマンドオプション「-cmdopt DATETIMENOCHK」が指定された場合は,後ろ側に数字「0」を仮定します。
注※3
コマンドオプション「-cmdopt DATETIMENOCHK」が指定された場合は,「1900(1900年)」を仮定します。
注※4
コマンドオプション「-cmdopt DATETIMENOCHK」が指定された場合,年は後ろ側に「0」を,月および日は「01(01月または01日)」を仮定します。
注※5
コマンドオプション「-cmdopt DATETIMENOCHK」が指定された場合は,「19000101(1900年01月01日)」を仮定します。
注※6
月および日に1桁の「0(0月または0日)」が入力された場合は,注※1に示すエラーとなります。
例えば,「2013/1/1」が入力された場合は「20130101(2013年01月01日)」を仮定しますが,「2013/0/0」が入力された場合はエラーとなります。
注※7
後ろ側に数字「0」を仮定することで,月および日が「00」となった場合は,「01」を仮定します。ただし,月および日に1桁の「0(0月または0日)」が入力された場合は,注※1に示すエラーとなります。例えば,「201301」が入力された場合は「20130101(2013年01月01日)」を仮定しますが,「2013010」が入力された場合はエラーとなります。
注※8
「入力データなし」とは,指定したセルの書式に示すデータの一部がなかった場合を示します。日付および時刻データともに入力されていない場合は,ナル文字列として処理します。
コマンドオプション「-cmdopt DATETIMENOCHK」の詳細については,「5.5.13 日付時刻データのチェックオプション(DATETIMENOCHKオプション)」を参照してください。
 
日付時刻データの端数処理についての注意事項を次に示します。
  • 桁修飾文字(スラント,ハイフン,コロン,またはピリオド)で年月日および時分秒ミリ秒を区切っている場合,日付のM(月),D(日),および時刻のh(時),m(分),s(秒),f(ミリ秒)部分のデータは1桁でもかまいません。1桁データは2桁または3桁に調整されます。例えば,「2013-7-7T8:3:5.1」と「2013-07-07T08:03:05.100」は同じ値として扱われます。
  • 日付時刻データを桁修飾文字(スラント,ハイフン,コロン,またはピリオド)で区切っている場合は,年月日時分秒ミリ秒のそれぞれの桁ごとに桁調整されます。
  • 日付時刻として正しくないデータの場合も,扱える値の範囲内であればエラーにしないで日付,時刻またがりデータとして扱います。例えば,「2013-11-31」は「2013-12-01」,「20:59:99」は「21:00:39」として扱います。
指定例
指定例を次に示します。
入力データ(書式)有効桁の指定(日付,時刻)内部データ形式説明
2013-08-05T19:08:53.068
(YYYY-MM-DDThh:mm:ss.fff)
6,42013081908​有効桁以外の部分(DD,ss,fff)は入力されません。
0,9190853068​時刻データだけ比較対象となり,日付(YYYYMMDD)は入力されません。
19876/054/0321△098.076.0543.21098
(YYYY/MM/DD△hh.mm.ss.fff)
8,919870503090705210​それぞれの桁あふれ部分(下線部分)は入力されません。
YYYY:19876
MM:054
DD:0321
hh:098
mm:076
ss:0543
fff:21098
2013T201320
(YYYYThh)
6,6201301201320​日付の月データがなかったため,1月(01)を仮定値とし,日付を6桁に調整します。
20130805190853068​
(YYYYMMDD)
6,42013080000​区切り文字がないため,時刻データを検知できず,0時0分(0000)を仮定します。
2013/8/10△7:27:53.250
(YYYY/MM/DD△hh:mm:ss.fff)
8,920130810072753250​前側(MM,hh)に0(ゼロ)を仮定値とし,日付時刻を17桁に調整します。
20130807​T320808080​
(YYYYMMDDThhmmssfff)
8,920130808080808080​hhに24以上が入力されたため,時刻またがりによって内部データを変更します。
(凡例)
△:空白を示す。
T:区切り文字「T」を示す。
注意
  • 日付時刻データの数値部分だけが有効桁数の対象です。データの先頭と末尾を囲んでいる引用符,項目区切り文字(「T」または空白),桁修飾文字(スラント,ハイフン,コロン,またはピリオド),および12時間制表記は,有効桁に含まれません。
  • 日付時刻データの端数および日付時刻またがり処理によって,入力セルデータが変更されることはありません。
  • 入力データは実行システムのローカルタイムとして解釈し,世界協定時(UTC)に正規化します。正規化した時刻が,日付時刻の指定可能な範囲内でなければ不正なデータと見なします。
  • 日付データの有効桁に「8」を,時刻データの有効桁に「2」以上を指定している場合,桁調整後のローカルタイムが世界協定時(UTC)の範囲内に収まらない場合がありますので,注意してください。世界協定時(UTC)の範囲外となる例を次に示します。
    (例)
    実行システムのローカルタイムのタイムゾーン:UTC+09:00
    キーの指定「h+1-8,2」:日付データの有効桁「8」,時刻データの有効桁「2」
    入力データ桁調整
    (括弧は埋め字)
    世界協定時(UTC)
    19701970(01)(01)(00)9時間減算すると「1970年01月01日0時0分0.0秒」以前となるため,不正データと見なされます。
    1970-01197001(01)(00)
    1970-01-0119700101(00)
    1970-01-01T081970010108
    1970-01-01T0919700101099時間減算すると「1970年01月01日0時0分0.0秒」となり,正常データとして処理されます。