9.24 CONVERTDATE_NUMERIC
日付を数値形式に変換します。
各製品の対応
LANSA/AD |
使用可 |
Visual LANSA for Windows |
使用可 |
Visual LANSA for Linux |
使用可 |
引数
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
N |
必須 |
変換する日付 |
4 |
8 |
0 |
0 |
2 |
A |
必須 |
変換前の日付形式 |
1 |
1 |
|
|
3 |
A |
必須 |
戻り値で必要な日付形式 |
1 |
1 |
|
|
有効な日付形式
· 変換前の日付形式として有効な値は、A、B、D、F、H、J、L、V、W、X、Y、Zおよび1です。
· 変換後に戻される日付形式として有効な値は、A、B、D、F、H、J、L、V、W、X、Y、Zおよび1です。
· 「日付形式」を参照してください。
戻り値
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
N |
必須 |
戻される変換後の日付 |
4 |
8 |
0 |
0 |
2 |
A |
任意 |
変換が成功したかどうかを示す戻りコード(YまたはN) |
1 |
1 |
|
|
技術上の注記
· すべての日付の年は4桁である必要があります。
これは、比較および計算を正確に実行するためです。ユーザーが入力した年が2文字(例:DDMMYY、YYMMDD、MMYY)の場合、システム定義データ・エリアから世紀の値が検索されます。指定された年をデータ・エリアの年と比較します。指定された年が比較年よりも小さいか等しい場合、前の世紀が使われます。指定された年が比較年よりも大きい場合、後の世紀が使われます。
· 最初の引数および戻り値の特質
最初の引数および最初の戻り値には、INTEGERフィールドおよびFLOATフィールドは使用できません。
DATEフィールドを直接使用することはできません。ただし、AsNumber組み込み関数を使用してNumberに変換中の場合は、DATEフィールドを間接的に使用することができます。
2番目の引数の値は、組み込み関数に指定する値の形式と同じにする必要があります。
例えば、DATEFL1という名前のDATEフィールドがあり、このフィールドを最初の引数として組み込み関数に使用する場合は、以下のような変換を行う必要があります。
DATEFL1.AsNumber(DDMMCCYY)
他の形式の組み込み関数を参照してください。
2番目の引数の値はHにする必要があります。これは、DDMMYYYYの日付形式を表しています。
最初の戻り値を保持するフィールドとしては、INTEGERおよびFLOATを含むすべてのNUMERICフィールドを使用することができます。
· 翻訳
P、Q、R、S、T、Uの日付形式を使用すると、日付は、DC@M01のメッセージBIF0101およびBIF0102で指定された形式で返されます。英語以外の言語で日付が返されるようにする場合は、これらのメッセージが適切な言語に翻訳されるようにしてください。
LANGがENGまたはNAT以外の場合は、メッセージが、実行している言語のメッセージ・ファイルに存在していることを確認する必要があります。
RDMLX専用の例:
CONVERTDATE_NUMERICでは、フィールド・タイプはDATEのみを使用してください。
USE BUILTIN(CONVERTDATE_NUMERIC) WITH_ARGS(#DATEFL1.AsNumber(DDMMCCYY) H J)TO_GET(#NUM80 )
より洗練されたプログラミング・スタイルにするには、以下のコードを使用する必要があります。
#NUM80 := #DATEFL1.AsNumber (CCYYMMDD)
#NUM80は、8バイト長、小数点以下桁数0桁の符号付き数値です。
RDMLの例
日付形式がYYMMDD(Dタイプ)の日付フィールド#YMDを、日付形式がDDMMYY(Bタイプ)の日付フィールド#DMYに変換するには、次のように指定します。
USE BUILTIN(CONVERTDATE_NUMERIC) WITH_ARGS(#YMD D B) TO_GET(#DMY)