2020/6/4 といった文字の日付変換
dbMAGIC V8でもDVAL('2020/6/4','YYYY/MM/DD')を試してみます。
-
もしかすると周りくどい事をしていたのは私だけかもしれません。
-
dbMAGIC V8は
DVAL('2020/6/4','YYYY/MM/DD') は日付型へ変換NGDVAL('2020/06/4','YYYY/MM/DD') は 2020/6/4へ変換OK
DVAL('2020/6/04','YYYY/MM/DD') も 2020/6/4へ変換OK でした。
-
ご参考までに確認ですが、Magicの日付型データは内部的には西暦1年1月1日から何日経過したかの経過日数を数値型データとして保存しているだけです。ですので、これを画面に表示したり、データとしてアウトプットしたりする場合は、表示用の書式だけを指定してやれば済みます。
-
tandaさん、お世話になっております。
今回は、テキストファイルやCSVファイルなどに2020/6/4といった文字情報が存在し
それをMagicの日付型に放り込みたい場合の話でした。
-
こういうテーブルがあるとします。↓

そして、外部にこういうテキストファイルがあるとします(月の表示に注目)。↓

これをAPGで入力します。すると、こうなります。↓

関数も何も使っていません。
-
実験結果公表ありがとうございます。
dbMAGIC V8も
5 2019/6/4
6 2020/12/31
7 2020/1/2
8 2018/12/1 といったテキストファイルをAPG取込したらちゃんと5 2019/06/04
6 2020/12/31
7 2020/01/02
8 2018/12/01 のように取り込めました。私がお伝えしたかったのは
dbMAGIC V8の頃は
DVAL('2020/6/4','YYYY/MM/DD')ではNGで
DVAL('2020/06/04','YYYY/MM/DD')などではOKだった。でもxpa等では
DVAL('2020/6/4','YYYY/MM/DD')でもOKになったと思った!
という話です。 -
今回はExcel10本×10シート×12列分の日付項目があり
それをDDEGetで取り込むプログラムを作りました。
マルチフォーマットのExcel文書なので、CSV化して取り込むより
DDEGetが都合が良かった面もあります。もらったExcel文書をCSV保存などせずに
そのまま取り込みたいシーンも有ろうかと思います。
DVAL('2020/6/4','YYYY/MM/DD')で取り込めたらいいのに・・・と思い、
実験したら成功したので投稿した次第です。
DVAL('2020/06/04','YYYY/MM/DD') のように4桁+2桁+2桁補正しなければならない
と思っていた人もいたでしょうから。
-
DVAL関数、DSTR関数がV10かuniPaaS 辺りから改良されたのだと予想します。
と言いますのは、V9 Plusも
DVAL('2020/6/4','YYYY/MM/DD') ではdbMAGIC V8同様、日付変換されませんでした。
uniPaaS V1 PlusのDSTRヘルプより引用
-
書式が日付文字列の書式と合っていない場合には、「0」が返ります。
-
書式と日付文字列の桁数を合わせてください。書式より短い日付を指定する場合は、空白で埋めてください。
xpa 3.2のヘルプにはこのような説明はありません。
-
-
> 関数使わなくても取り込めるのですね・・・・
そうなんです。理屈が分かってしまえばどうっちゅうことない機能なんですが、関数を使わずとも、書式だけで動作するという、目から鱗の機能のひとつですね。
サインインしてコメントを残してください。
コメント
9件のコメント