изменить формат даты

Статус
В этой теме нельзя размещать новые ответы.

zeta

Постоялец
Регистрация
26 Сен 2006
Сообщения
112
Реакции
8
Здравствуйте. Такой вопрос: у меня в базе данных даты записаны в формате 26.02.2007 12:46:33, к примеру, а мне их нужно привести к виду 1172483193?

То есть мне нужно не просто вывести дату в нужном формате, а в самой базе преобразовать эти значения в формат unix. Какой update делать - чего-то не соображу совсем.
 
mysql> SELECT unix_timestamp(STR_TO_DATE('26.02.2007 12:46:33', '%d.%m.%Y %H:%i:%s'));
-> 1172483193
 
Прошу не пинаться :) и не ругаться, потому как сама понимаю, что туплю и тем не менее - мне нужен код, который преобразует значения непосредственно в самой базе данных, причем все (а их там больше 30 000). Если не трудно - напишите php код. У меня ну никак не получается. В базе есть поле $date, в нем значения вида
26-02-2007. Я перехожу на другой скрипт, поэтому мне нужно конвертировать базу данных, в новой базе $date должно быть формата 1172483193. Заранее спаисбо
 
Работающий, но бестолковый и идеологически неверный код. Не забывайте делать бэкапы :)
PHP:
<?php
$dbhost = "127.0.0.1";
$dbuser = "root";
$dbpassword = "";
$serverdb = "nulled";

$connect = mysql_connect($dbhost, $dbuser, $dbpassword);
if (!$connect) {
    die ("Could`nt Connect");
    }
if (! mysql_select_db($serverdb, $connect) ) {
    die ("db select error");
    }


$req = mysql_query ("SELECT date FROM date");
while ($req_array = mysql_fetch_array ($req))
	{
		$get_new = mysql_query("SELECT unix_timestamp(STR_TO_DATE('" . $req_array['date'] . "', '%d.%m.%Y %H:%i:%s'))");
		while ($get_new_array = mysql_fetch_array ($get_new))
			{
				mysql_query ("UPDATE date set date = '" . $get_new_array[0] . "' where date = '" . $req_array['date'] . "'");
			}
	}

?>
 
Какого типа поле date? Выведи его по: desc TABLE_NAME.
Если тип CHAR/VARCHAR/TEXT, то всё можно сделать простым:
update TABLE_NAME set date=unix_timestamp(STR_TO_DATE(date, '%d.%m.%Y %H:%i:%s'));
Если тип не такой - отпишись.
P.S. В любом случае, как уже сказали, бекап будет не лишним.
 
Спасибо :) Мне толковый и идеологически правильный не нужен. Он мне нужен был на один раз, чтобы изменить даннеы в базе, так что главное - что он сработал :)

Странно, не нашла кнопку как спаисбо сказать :(. Подскажите - ибо с меня причитается
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху