Задать вопрос
@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 раз.
  • Вопрос задан
  • 155 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽