質問

右。私は、MySQL DBへのデータのロードを挿入してタイムスタンプを生成するには、次を使用した:

$stamp = mktime($t[0], $t[1], $t[2], $d[2], $d[1], $d[0]);

残念ながら、日と月の周りに混合し、以下の正しいタイムスタンプです。

$stamp = mktime($t[0], $t[1], $t[2], $d[1], $d[2], $d[0]);

これは、約5,000レコードです。一括更新や修正を行うための最も簡単な方法は何ですか?

どうもありがとうございました!

役に立ちましたか?

解決

データベースエンジンは、あなたが不可能に日付を挿入することができたのか、日のフィールドを持つ任意の日付を持っていなかった> 12

いずれにせよ、あなたはおそらく1つの更新ステートメントを使用して、それを修正することができますが、構文は、使用するデータベースエンジンに依存します。

MySQLの場合、あなたが使用することになります:

UPDATE myTable SET dateColumn = STR_TO_DATE(DATE_FORMAT(dateColumn, '%d-%c-%Y %T'), '%c-%d-%Y %T')

他のヒント

あなたがすることはできません。説明として、私は例を与えるます:

あなたは意味と仮定します。 13日目、月2、1990年 しかし、これは次のように読みました。 2日目、月13、1990年 年に数ヶ月だけで12まで行くので、これは次のように扱われます。 2日目、1ヶ月、1991年

しかし、あなたが意図したとします。 1日目、2ヶ月、1991年 これは、次のように読まれていたであろう。 2日目、1ヶ月、1991年

だから、あなたはそれがどこから来たのデータベース、一日2月1、1991年参照の場合はどうなりますか?

私は整数の二乗、言ってようなものだ、と結果は私が始めた36、-6または6のですか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top