Access2003を使用しています。

通信ログの解析を使用としているのですが、ログ(テキスト形式:300万件)の中の経過時間が記載されている部分が「99999.999999」の形式で記載されてしまっています。
Accessのテーブルにインポートする際に、データ形式は何でインポートすればよいでしょうか?
日付時刻型、整数型、倍精度浮動小数点型など数値として認識させようとすると変換エラーが出て空白になります。
テキスト型だと取り込めるのですが、その後で時刻形式に変換したりできません。
どうしたらいいのでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/06/15 21:21:40

ベストアンサー

id:doradoratan No.2

回答回数68ベストアンサー獲得回数15

手動でインポートされているのでしょうか?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 のような表示になると思います。

id:kaemi

ありがとうございます。
まさしくこの方法でなんとか形を整え、Leftで時間部分だけ取り出しています。
件数が多いので、もっそい時間かかってますが……。

2013/06/15 21:21:21

その他の回答1件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

「99999.999999」は日付時刻型ではないので、これを取り込むことはできません。

どこかの時点で「99999.999999」を 日付時刻型になるように変換してやる必要があります。

他1件のコメントを見る
id:taknt

取り込むときか、取り込んだとき、もしくは取り込む前に変換するしかないです。

そもそも300万件のデータをAccessで管理しようというのも 一般的ではないと思われます。

2013/06/13 13:00:34
id:kaemi

いずれはOracleなどを考えてるのですが、とりあえず今、集計するために試行錯誤しているのです;;
取り込むときに変換できればいいのですが……。

2013/06/13 15:15:06
id:doradoratan No.2

回答回数68ベストアンサー獲得回数15ここでベストアンサー

手動でインポートされているのでしょうか?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 のような表示になると思います。

id:kaemi

ありがとうございます。
まさしくこの方法でなんとか形を整え、Leftで時間部分だけ取り出しています。
件数が多いので、もっそい時間かかってますが……。

2013/06/15 21:21:21

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません