日付、時刻、またはタイム・スタンプ式

最初のパラメーターが日付、時刻、またはタイム・スタンプ式である場合、 オプションの形式パラメーターで、戻り値の形式を指定します。 変換後の 10 進数値の桁数は、その形式の値が取り得る桁数になり、 小数点以下の桁数はゼロになります。 例えば、最初のパラメーターが日付で、形式が *YMD である場合、10 進数値は 6 桁になります。

形式パラメーターを省略すると、最初のパラメーターの形式が使用されます。 DATFMT(形式{区切り記号})および TIMFMT(形式{区切り記号})を参照してください。

形式 *USA は、時刻式では使用することができません。 最初のパラメーターが *USA という時刻形式の時刻値である場合には、%DEC の 2 番目の形式パラメーター を必ず指定する必要があります。

図 183 は %DEC 組み込み関数の例を 示しています。

詳細については、変換命令または 組み込み関数を参照してください。

図 182. %DEC を使用して日付、時刻、およびタイム・スタンプを数値に変換する
D   yyddd         S              5S 0
D   yyyymmdd      S              8P 0
D   hhmmss        S              6P 0 
D   numeric       S             20S 0  
D   date          S               D   inz(D'2003-06-27') DATFMT(*USA)
D   time          S               T   inz(T'09.25.59')
D   timestamp     S               Z   inz(Z'2003-06-27-09.25.59.123456'  
 /free        
                    
     // Using the format of the first parameter

     numeric = %dec(date);        		//   numeric = 06272003    
     numeric = %dec(time);         		//   numeric = 092559    		
     numeric = %dec(timestamp);    		//   numeric = 20030627092559123456

     // Using the second parameter to specify the result format     

     yyddd = %dec(date : *jul);    		//   yyddd = 03178    
     yyyymmdd = %dec(date : *iso); 		//   yyyymmdd = 20030627