データベーステーブルの最初の50ほどのエントリに対してクエリが間違っていたため、日付フィールドに「2013年1月5日」のようなエントリがあります。
誰かが日付フィールドのすべてのエントリを取得し、それらをUNIXタイムスタンプに単純に変換するクエリを手伝ってもらえますか?
ここで他の多くの質問を調査しましたが、私が見つけたものは、事後の日付のグループの操作/変換に対処しているようには見えません。
ありがとう
すべての行を選択しstrtotime
、タイムスタンプ値の取得に使用してから、行を更新します。
phpを使用している場合は、「strtotime()」関数を使用して、データベースの値を更新します。
SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19');
詳細はこちらhttp://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp
PHP;
$ts = strtotime("January 5th, 2013");
echo date("Y-m-d", $ts); // 2013-01-05
SQL;
UPDATE `table` SET `date_field` = UNIX_TIMESTAMP(`date_field`);
また、列タイプを変更する場合(INT
パフォーマンスの問題ではタイプを優先します)。
ALTER TABLE `table` MODIFY `date_field` INT UNSIGNED NOT NULL;
ただし、この後、すべてのデータを整数としてこの列に挿入する必要があります。
$time = time(); // or $time = strtotime("January 5th, 2013");
INSERT INTO `table` (`date_field`) VALUES ($time)