@Dark_Rider

Преобразовать из timestamp в обычное время (много записей)?

Имеется таблица.
структура грубо говоря
num time
num-порядковый номер
time-обычный unix timestamp
И куча строк в ней.
около 80к записей.
Необходимо конвертировать unix time в обычное время.
На php был написан скрипт, но он слишком долго выполняется,
примерно такого плана:
// connect to MySQL
require_once('configuration.php');
$conf = new JConfig();
@mysql_connect($conf->host, $conf->user, $conf->password) or die(mysql_error());
mysql_select_db($conf->db) or die(mysql_error());
$sql = "select time from  table" or die(mysql_error());
    $rs = mysql_query($sql);
   
    while($row = mysql_fetch_array($rs)){
$time=$row['time'];
$time2=$row['time'];
$time = gmstrftime('%Y-%m-%d %H:%M:%S', $time);
		$sql2="UPDATE  `table`.`vc` SET  `time` =  '$time' WHERE  `vc`.`time` =  '$time2' LIMIT 1 ;";

mysql_query ( $sql2 ) or die(mysql_error());

Как то средством mysql быстро можно это сделать? делал на VDS, ждал минут 40 только 30%.
Как то вроде копировать в новую таблицу с изменением данных, не знаю...
Простите за говно код (ну там 2 раза присваивается переменная), обработка делается на 1 раз.
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
roswell
@roswell
и швец, и жнец, и на дуде игрец
ALTER TABLE `table` ADD `time2` DATETIME DEFAULT NULL;
UPDATE `table` SET `time2` = FROM_UNIXTIME( `time` );
ALTER TABLE `table` DROP `time`;
ALTER TABLE `table` CHANGE `time2` `time` DATETIME DEFAULT NULL;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы