メインコンテンツへスキップ

2020/6/4 といった文字の日付変換

コメント

9件のコメント

  • nkmt

    もしかすると周りくどい事をしていたのは私だけかもしれません。

     

  • nkmt

    dbMAGIC V8は
    DVAL('2020/6/4','YYYY/MM/DD') は日付型へ変換NG

    DVAL('2020/06/4','YYYY/MM/DD') は 2020/6/4へ変換OK

    DVAL('2020/6/04','YYYY/MM/DD') も 2020/6/4へ変換OK でした。

     

  • Tanda

    ご参考までに確認ですが、Magicの日付型データは内部的には西暦1年1月1日から何日経過したかの経過日数を数値型データとして保存しているだけです。ですので、これを画面に表示したり、データとしてアウトプットしたりする場合は、表示用の書式だけを指定してやれば済みます。

  • nkmt

    tandaさん、お世話になっております。

    今回は、テキストファイルやCSVファイルなどに2020/6/4といった文字情報が存在し

    それをMagicの日付型に放り込みたい場合の話でした。

  • Tanda

    こういうテーブルがあるとします。↓

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

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

    関数も何も使っていません。

     

  • nkmt

    実験結果公表ありがとうございます。

    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になったと思った!
    という話です。

  • nkmt

    今回は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桁補正しなければならない

    と思っていた人もいたでしょうから。

  • nkmt

    DVAL関数、DSTR関数がV10かuniPaaS 辺りから改良されたのだと予想します。

    と言いますのは、V9 Plusも

    DVAL('2020/6/4','YYYY/MM/DD') ではdbMAGIC V8同様、日付変換されませんでした。


    uniPaaS V1 PlusのDSTRヘルプより引用

    • 書式が日付文字列の書式と合っていない場合には、「0」が返ります。

    • 書式と日付文字列の桁数を合わせてください。書式より短い日付を指定する場合は、空白で埋めてください。

     

    xpa 3.2のヘルプにはこのような説明はありません。

     

     

  • Tanda

    > 関数使わなくても取り込めるのですね・・・・

    そうなんです。理屈が分かってしまえばどうっちゅうことない機能なんですが、関数を使わずとも、書式だけで動作するという、目から鱗の機能のひとつですね。

サインインしてコメントを残してください。