Forum Webscript.Ru

Программирование => PHP => Тема начата: Гаррилл от 24 Июня 2002, 21:35:57

Название: Помогите трансформировать дату
Отправлено: Гаррилл от 24 Июня 2002, 21:35:57
Я переделываю нюк. Значит, стоит у меня такая задача:
Есть 300 новостей в таблице MySQL nuke_stories, а там у каждой время постинга такое: time = 2002-06-24 20:36:27, где тип поля datetime. Мне же надо иметь дату time = 1024936587, с типом поля int(11). Вот как я продумал свои действия:

Код:

 
mysql_connect($host, $username, $password);
@mysql_select_db($database);
 
mysql_query("ALTER TABLE nuke_stories ADD times int(11) not null AFTER time");
 
$result = mysql_query("select time from nuke_stories");
while(list($time) = mysql_fetch_row($result)) {
 
ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})", $time, $datetime);
 
//$datetime[4] - час
//$datetime[5] - минута
//$datetime[6] - секунда
//$datetime[2] - месяц
//$datetime[3] - день
//$datetime[1] - год
 
$newtime = $datetime[6]+$datetime[5]*60+$datetime[4]*3600+$datetime[3]*86400+$datetime[2]*2592000+32*31104000;
 
    mysql_query("update nuke_stories set times=\'$newtime\' where time=\'$time\'");
}
 
?>


А потом удалить поле time и переименовать times в time?
Что-то не выходит.
Название: Помогите трансформировать дату
Отправлено: Меняздесьдавнонет от 24 Июня 2002, 21:47:35
гы гы гы :-)
update nuke_stories set times=UNIX_TIMESTAMP(time)
вуаля! :-)
Название: Помогите трансформировать дату
Отправлено: Гаррилл от 24 Июня 2002, 21:49:32
RomikChef
Ща проверю. А я считал секунды за 32 года.
Название: Помогите трансформировать дату
Отправлено: Меняздесьдавнонет от 24 Июня 2002, 21:51:26
и проверять нечего :-)
Ты просто ради прикола погляди в доке по муське, сколько там функций для работы с датами.

Я только подредактировал малость запрос - апдейтится поле times а не time
Название: Помогите трансформировать дату
Отправлено: Гаррилл от 26 Июня 2002, 08:52:10
А как по ходу этого же скрипта переименовать times в time без пхпМайАдмина?

mysql_query("ALTER TABLE nuke_stories ADD times int(11) not null AFTER time");
 
$result = mysql_query("select time from nuke_stories");
while(list($time) = mysql_fetch_row($result)) {
 
    mysql_query("UPDATE nuke_stories SET times=UNIX_TIMESTAMP(time)");
 
}
 
mysql_query("ALTER TABLE nuke_stories DROP time");  

Какую команду после дропа выполнить?
Название: Помогите трансформировать дату
Отправлено: AlieN от 26 Июня 2002, 11:52:05
alter table nuke_stories \'times\' \'time\' UNIX_TIMESTAMP(time)
Название: Помогите трансформировать дату
Отправлено: Гаррилл от 26 Июня 2002, 14:04:33
Делал так:

mysql_query("ALTER TABLE nuke_stories ADD times int(11) not null AFTER time");
 
$result = mysql_query("select time from nuke_stories");
while(list($time) = mysql_fetch_row($result)) {
 
    mysql_query("UPDATE nuke_stories SET times=UNIX_TIMESTAMP(time)");
 
}
 
mysql_query("ALTER TABLE nuke_stories DROP time");
mysql_query("ALTER TABLE nuke_stories \'times\' \'time\' UNIX_TIMESTAMP(time)");
Не вышло.
Название: Помогите трансформировать дату
Отправлено: AlieN от 26 Июня 2002, 14:28:15
извини ошибся:
mysql_query("ALTER TABLE nuke_stories CHANGE \'times\' \'time\' UNIX_TIMESTAMP(time)");
Название: Помогите трансформировать дату
Отправлено: Гаррилл от 26 Июня 2002, 14:40:14
И так тоже не переименовывается.
Название: Помогите трансформировать дату
Отправлено: Меняздесьдавнонет от 26 Июня 2002, 15:22:27
кавычки-то вроде не нужны.
Название: Помогите трансформировать дату
Отправлено: Гаррилл от 26 Июня 2002, 17:09:57
Я из без кавычек пробовал и без таймстампа. Не хочет. Хех. так и базы не напасёшся. А есть другие способы?
Название: Помогите трансформировать дату
Отправлено: Меняздесьдавнонет от 26 Июня 2002, 22:18:57
блин!
сто раз бы уже попробовал все и сделал!
Есть способы.
печатать mysql_error()
поставить пхпмайадмин
поставить муську локально и в консоли потренироваться
почитать документацию

Ну что ж ты такой беспомощный-то, а?