actian Zenの日付型と時刻型の表示
皆さんこんにちはAIS@川島です。
この度にシステムのマイグレーションの案件がありXPAのバージョンは上がりますが
DBMSはPervasive⇒ActianZENと持ち越すことなりそうです。
XPAからアクセスはこれまでのようにISAM形式で使用する予定ですがデータの調査等は ZctianZENにSQL管理させたいと思います。
そこでXPAのDDLメーカーを使用して定義情報を出力してみましたが下記の問題が発生したため質問させていただきました。
現象:SQLでテーブルの内容を表示したときに日付型と時刻型の表示はおかしくなる。
・XPA側の日付型(時刻型)の定義 IntergerDate(IntgetTime)となっておりデータファイルもこの形式で作成されています。
・DDLメーカーで出力したCreateTable分を確認するとStringDate(StringTime)で作成されてしまいます。
質問①:DDLメーカーで出力するときにIntergerDate(IntgetTime)で出力することはできないか?
質問②:pervasiveControlCenter側でSQLを表示はまたは更新時に何かできないか?
あくまでも管理用途に使用するため物理ファイルの変更等は考えておりません。
何か良い手があればご教示のほどよろしくお願いいたします。
-
DDLメーカーはそこまで高機能ではないので変更は難しいのではないでしょうか。。
おかしくなるというのがどんな風かにもよりますが
試してみたところDDLメーカーでできたCreateTableのSQLは
Magic Dateならbinary、StringDateだとCHAR(8)、IntgerDateだとintegerになっていて
IntgerDateの中身は基準日からの日数なので、
CONVERT('0001-01-01',SQL_DATE )+ 日付項目 -1 とかにした
ビューを作ってしまえば見る分には使えるのではないでしょうか。
編集もするとなると正直Magic経由の方が楽だと思います
DDFbuilderでテーブル定義の編集はできたりプレビューできたりするので
見ながら試されるのがよいかと -
AIS@川島です。
ご連絡ありがとうございます。
例えば
XPAからだと「2006/06/30」 ⇒ZEN「731153」となります。
やはり元の物理ファイルを変更しないようにするにはDDFBuilder等で行う必要がありそうですね。
先方がSQLの扱いが慣れていますのでこちらのSQLがつかえないかなとの質問を受けましたので連絡させていただきました。
上記SQLの件は試してみます。
-
AIS川島さん、
> XPAからだと「2006/06/30」 ⇒ZEN「731153」となります。
「731153」でしたらデータの値としては正しいと思いますので、画面表示だけの問題のようですね。
-
AIS@川島です。
ご連絡ありがとうございます。
CONVERT('0001-01-01',SQL_DATE )+ 日付項目 -1
やってみました。上手く表示されました。ありがとうございます。
ちまみに時刻の場合は
CONVERT('0:0:0',SQL_TIME )+ 時刻項目 -1
で良いのでしょうか? ご教授お願い致します。
-
試していませんが、0時0分0秒からの秒数なので、-1要らないのと
CONVERT関数だとDatatime型なのでちょっとめんどくさいと思うので、
時間項目/3600が時 あまりの/60が分のあまりが秒とかにした方がわかりやすいかと
Pervasive PSQL スカラー関数のリファレンス とかで検索すると
エージーテックのHPがでてくるのでそちらの方が詳しく書いてあります -
AIS川島さん、
データの値が正しいのであれば、あえて関数を使って変換する必要はないと思いますよ。
テーブルの型や書式、およびフォームの書式等が「日付型」で「YYYY/MM/DD」の書式で統一されていれば、それだけで正常に表示されるはずですよ。
-
AIS@川島です。
ご連絡遅れてすみません。
おっしゃる通りXPA側は「日付型」で「YYYY/MM/DD」で定義されており問題なく
表示されております。この場合DDL出力を行ったActianZen上のSQLでテーブルを表示したときに発生します。
やり方に問題があるのでしょうか?
XPA上からDDLメーカーで定義を出力してActianZENで出力されたSQLをCreateを行っております。
因みにZctian13 を使用しております。 問題箇所が存在ある場合はご指摘お願いいたします。
-
AIS川島さん、Magicでは日付型データを内部的には数値型で保持していますので、それをそのまま外部ツール等で表示したりすると、そのままの値で表示されるでしょうね。
外部ツールでも日付の形式で表示させたいとなると、その都度、データの変換が必要になるでしょうね。
サインインしてコメントを残してください。
コメント
8件のコメント