0

データベースにインポートされているテーブル (csv) にある列の varchar 値を変換しようとしています。現在、日付がcsvファイルに含まれる可能性のある形式について、事前に情報を持っていません。列のすべての値を確認し、有効であればそれらの列を mysql の DATE データ型に変換する必要があります。問題は、str_to_date を使用し、日付の形式が異なる場合、ストアド プロシージャがエラーをスローして実行を停止することです。ストアド プロシージャが反復を完了できるように、そのエラーを無視する方法が必要です。

また、結果の値を使用して、コンテンツが有効な日付であるかどうかを確認する予定ですか? それを行うより良い方法はありますか?元のデータの日付形式に関する情報がないことに注意してください。

たとえば、日付は '11-Apr-2011'、'20110102'、'01-05-2011' などです。サポートする必要がある 4 ~ 5 の形式があります。ありがとう。

4

1 に答える 1

0

事前に日付の形式がわからないため、次のpreg_matchようにを使用してすべてを処理できます。

$regex = '<matches for dates>';
if (preg_match($regex, $stringToCheck)) {
    str_to_date($stringToCheck);
} else {
}

複数のケースを作成せずに未知のケースをどのように処理するかわかりません。PHP はどのようにしてフォーマットが mm/dd/yy と dd/mm/yy であることを認識しますか?

于 2012-04-12T19:49:09.240 に答える