0

次の文字列を使用して、アクセス日時フィールドを mysdl 形式に変換しようとしています。

select str_to_date('04/03/1974 12:21:22', '%Y %m %d %T');

エラーは発生しませんが、期待される結果は得られません。代わりに、次のようになります。

+---------------------------------------------------+
| str_to_date('04/03/1974 12:21:22', '%Y %m %d %T') |
+---------------------------------------------------+
| NULL                                              |
+---------------------------------------------------+
1 row in set, 1 warning (0.01 sec)

アクセス日は次の形式です。

06.10.2008 14:19:08

何が欠けているのかわかりません。

副次的な質問として、以前にcsvファイルをインポートして列のデータを変更できるかどうか疑問に思っていますか? insert_date フィールドと update_date フィールドを独自の日付に置き換えたいのですが、インポート前とインポート後のどちらが簡単かわかりません。

助けてくれてありがとう。

4

3 に答える 3

4

関数の構文がオフになっています。

試す:

select str_to_date('04/03/1974 12:21:22', '%m/%d/%Y %T');

2番目のパラメーターは、日付の一部が文字列のどこにあるかを関数に通知します。

アクセスに関する質問:

select str_to_date('06.10.2008 14:19:08', '%m.%d.%Y %T');
于 2008-11-06T14:46:45.330 に答える
1

まず最初に、フォーマットが文字列と一致しないため、表示されているstr_to_dateは機能しません。'%Y%m%d%T'は、日付が '1974 040312:21:22'のようなものである場合に機能します

正しい形式は「%m /%d /%Y%T」(月/日/年の時間)である必要があります。または'%d /%m /%Y%T'(日/月/年の時間)。

アクセスに関しては、上記を使用するように変更するのが好きに見えます。/が機能する場所。

于 2008-11-06T14:45:48.950 に答える
0

これのどちらの端を使用しているのか、Accessの端とMySQLの端のどちらを使用しているのかはわかりませんが、MySQLの関数を使用して解決しようとしているようです。問題がAccess/JetからCSVをエクスポートしたことであり、それが期待される形式ではない場合は、MySQLが理解できる形式を使用するようにAccessからのCSVエクスポートを修正する必要があります。

Access / Jetデータベースを使用できる場合は、MySQLデータベース用にODBC DSNを設定し、Accessでリンクテーブルを作成して、Accessテーブルからデータを直接追加する方が簡単な場合もあります。 MySQLテーブル。MyODBCドライバーがデータ変換を処理します。

于 2008-11-08T03:31:03.480 に答える