通信ログの解析を使用としているのですが、ログ(テキスト形式:300万件)の中の経過時間が記載されている部分が「99999.999999」の形式で記載されてしまっています。
Accessのテーブルにインポートする際に、データ形式は何でインポートすればよいでしょうか?
日付時刻型、整数型、倍精度浮動小数点型など数値として認識させようとすると変換エラーが出て空白になります。
テキスト型だと取り込めるのですが、その後で時刻形式に変換したりできません。
どうしたらいいのでしょうか?
手動でインポートされているのでしょうか?VBAでしょうか?
VBAなら1件づつ読み込んで、日付形式に編集するという方法もありますね。
日付型にするには、日付+時刻にしなければいけませんから、そのように編集してからテーブルにセットする必要があります。ただし、小数点以下の秒?は Accessの日付形式のフィールドには保存できないと思います。
とりあえず、テキストでインポートしておいて、クエリで編集してしまう手はあると思います。
SELECT mid(時刻_txt,1,2) & ":" & mid(時刻_txt,3,2) & ":" & mid(時刻_txt,5,2) & "." & right(時刻_txt,6) AS 時刻
FROM テーブル1;
11:30:56.123456 のような表示になると思います。
「99999.999999」は日付時刻型ではないので、これを取り込むことはできません。
どこかの時点で「99999.999999」を 日付時刻型になるように変換してやる必要があります。
取り込むときか、取り込んだとき、もしくは取り込む前に変換するしかないです。
そもそも300万件のデータをAccessで管理しようというのも 一般的ではないと思われます。
いずれはOracleなどを考えてるのですが、とりあえず今、集計するために試行錯誤しているのです;;
取り込むときに変換できればいいのですが……。
手動でインポートされているのでしょうか?VBAでしょうか?
VBAなら1件づつ読み込んで、日付形式に編集するという方法もありますね。
日付型にするには、日付+時刻にしなければいけませんから、そのように編集してからテーブルにセットする必要があります。ただし、小数点以下の秒?は Accessの日付形式のフィールドには保存できないと思います。
とりあえず、テキストでインポートしておいて、クエリで編集してしまう手はあると思います。
SELECT mid(時刻_txt,1,2) & ":" & mid(時刻_txt,3,2) & ":" & mid(時刻_txt,5,2) & "." & right(時刻_txt,6) AS 時刻
FROM テーブル1;
11:30:56.123456 のような表示になると思います。
ありがとうございます。
まさしくこの方法でなんとか形を整え、Leftで時間部分だけ取り出しています。
件数が多いので、もっそい時間かかってますが……。
ありがとうございます。
2013/06/15 21:21:21まさしくこの方法でなんとか形を整え、Leftで時間部分だけ取り出しています。
件数が多いので、もっそい時間かかってますが……。