0

大きなcsvをテーブルにインポートした後、私の場合は大きな問題が発生しました。csvの日付の形式はDD MM YYYYであり、それを日付/日時にインポートしようとすると機能しません。さて、私はDATE / DATETIMEの代わりにCHARタイプでそれを行いました、そしてそれは今のところ機能します。(私の例:VisitTime CHAR(10))

しかし、ここに問題があります。CHAR内のデータを連結して、2つの列から日時列を作成することはできません(私の例は、DATEであるはずのVisitTime CHAR(10)ですが、形式が間違っているため機能していませんDD MM YYYYとTIMEであるHourTime。結論 VisitTIME CHAR(10)とHourTimeTIMEを連結した結果であるVisitTimeとHourDATETIMEの別のテーブルに列が必要です。解決策は、私が話したすべての列をVARCHARにすることでした。問題ないと思いますが、日付と日時を守りたいです:)解決策を待っています、よろしくお願いします。

私が間違っている場合は訂正してくださいが、変数にインポートしようとすると変換しても大丈夫ですか?ちなみに、csvから変換する必要がある日付の例は次のとおりです:22/04/2005)コード:

SET @ var1 = NULL; データ入力ファイル'xxxx/ xxx / xxx / xxx /xxx'をテーブルvizite_intermtest文字セットにロードします。utf8フィールドは'で終了し、'行は'\ n'で終了します。1行を無視します(@ var1、OraIntrare、NumePacient、PrenumePacient、NumeMedic、PrenumeMedic、キャビネット)SET VisitTime = STR_TO_DATE(@ var1、'%d /%m /%y');

これを試してみると、次のように表示されます。切り捨てられた誤った値22/04/2005(インポートしたいVisitTime列はCHAR型です)

LE:変数にインポートして変換することはできますが、それらの間に/ / /を入れても、時間形式は------ ...何かアイデアがありますか?

4

1 に答える 1

1

DATE / DATETIME フィールドに固執する必要がありますが、受信データの解釈方法を MySQL に伝えます。データをどのようにインポートしたかはわかりませんが、文字列を日付として解釈する関数は次のSTR_TO_DATEとおりです。

STR_TO_DATE( '01 02 2003', '%d %m %Y' )

詳細については、次を参照してください: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date

于 2012-05-29T13:04:52.720 に答える