0

CSVREAD を使用してインポートする必要がある csv ファイルがあります。問題は、日付と時刻の形式が異なるため、解析する必要があることです。

私は試しました: MESSAGE (MESG_DATE_FROM,MESG_DATE_TO,MESG_DISPLAY_SEQ,MESG_TIME_DELAY,MESG_ID,REASONTYPE_MAJOR) SELECT * FROM CSVREAD('MESSAGE_0.csv'); にマージします。

このクエリはプログラムで作成されるため、手作りすることはできません。問題は、一部の列が日時型であり、H2 の日時形式とは異なる日時形式であることです。解析の時点で、どの列が日時になるかを正確に判断する方法がないため、PARSEDATETIME と CSV ファイルを簡単に配置できません。列名や情報は含まれず、値のみが含まれます。このように: 2011-11-18 00.00.00.00,2030-12-31 00.00.00.00,1,20000,1,0, ...
...

この CSV を各テーブルにロードするために Sql ファイルが生成されますが、PARSEDATETIME(MESG_DATE_FROM,'yyyy-mm-dd hh.mm.ss.uu') を MESG_DATE_FROM として追加するには、列が TIMESTAMP タイプであるかどうかを知る必要があるようです。 SQLに。

DB2 では、マージ クエリで timestampformat=YYYY-MM-DD HH.MM.SS.UU を使用できたので、これはテーブルのデフォルトの方法で行われました。H2に似たものはありますか?

4

1 に答える 1

2

あなたが望むことは不可能だと思います。H2 で「グローバル」タイムスタンプ形式を変更する方法はありません (DB2 でできるように)。

どちらかが必要になると思います

  • 必要に応じて使用して、各列の列の種類に基づいてクエリを作成するPARSEDATETIME、または
  • H2 が使用するのと同じタイムスタンプ形式を使用するように CSV ファイルを変更しますyyyy-mm-dd hh:mm:ss[.f...]
  • 「グローバル」タイムスタンプ形式をサポートするための H2 のパッチを提供します。
于 2013-10-14T18:14:15.753 に答える