обновление phpBB 1.4.4 до последней версии
-
- phpBB 1.4.1
- Сообщения: 44
- Стаж: 18 лет 6 месяцев
-
- Former team member
- Сообщения: 1139
- Стаж: 19 лет 2 месяца
- Откуда: Ленинград
-
- phpBB 1.4.1
- Сообщения: 44
- Стаж: 18 лет 6 месяцев
-
- Former team member
- Сообщения: 9683
- Стаж: 18 лет 11 месяцев
- Откуда: Питер
- Благодарил (а): 1 раз
- Поблагодарили: 27 раз
/DiOs
Что не так?
Ругается 
Добавлено спустя 1 минуту 11 секунд:
Добавлено спустя 54 секунды:
Ругается
Что не так?
Код: Выделить всё
update posts set posts.post_time = UNIX_TIMESTAMP o.posts.post.time where posts.post_id = o_posts.post_id;
syntax to use near 'o.posts.post.time where posts.post_id = o_posts.post_id'

Добавлено спустя 1 минуту 11 секунд:
Код: Выделить всё
update posts set posts.post_time = UNIX_TIMESTAMP o_posts.post_time where posts.post_id = o_posts.post_id
Ругается
syntax to use near 'o_posts.post_time where posts.post_id = o_posts.post_id'
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
-
- Former team member
- Сообщения: 1139
- Стаж: 19 лет 2 месяца
- Откуда: Ленинград
По-любому, UNIX_TIMESTAMP -- это функция, поэтому ее аргументы надо заключать в круглые скобки.Палыч писал(а):UNIX_TIMESTAMP o_posts.post_time
Что записано в этом поле? Текстуально.Палыч писал(а):o_posts.post_time
Добавлено спустя 1 минуту 21 секунду:
Когда я давал пример своего кода, то подразумевал, что в varchar старой базы просто записан timestamp в виде строки. Я был не прав?
И если я неправ, пусть старшие товарищи поправят меня
-
- phpBB 1.4.1
- Сообщения: 44
- Стаж: 18 лет 6 месяцев
-
- Former team member
- Сообщения: 9683
- Стаж: 18 лет 11 месяцев
- Откуда: Питер
- Благодарил (а): 1 раз
- Поблагодарили: 27 раз
/DiOs
По-моему там надо FROM использовать...
Добавлено спустя 11 минут 28 секунд:
Имеем: базу NEW и базу OLD
Из базы OLD таблица posts скопирована в NEW под именем o_posts
В обоих таблицах есть поле post_time
запрос выдает ошибку #1109 - Unknown table 'o_posts' in field list
Блин...
Добавлено спустя 42 минуты 52 секунды:
Так, с синтаксисем вроде разобрался
Переносит только год (где-то так и ожидал
).
Теперь бы понять как данные вида " '2002-06-04 11:56' перевести в '1023177373'
По-моему там надо FROM использовать...

Добавлено спустя 11 минут 28 секунд:
Имеем: базу NEW и базу OLD
Из базы OLD таблица posts скопирована в NEW под именем o_posts
В обоих таблицах есть поле post_time
запрос
Код: Выделить всё
update posts set posts.post_time = o_posts.post_time;
Блин...
Добавлено спустя 42 минуты 52 секунды:
Так, с синтаксисем вроде разобрался
Код: Выделить всё
update posts set posts.post_time = (select post_time from postso where posts.post_id = postso.post_id)

Теперь бы понять как данные вида " '2002-06-04 11:56' перевести в '1023177373'

Последний раз редактировалось Палыч 24.10.2006 23:39, всего редактировалось 1 раз.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
-
- Former team member
- Сообщения: 1139
- Стаж: 19 лет 2 месяца
- Откуда: Ленинград
Дык тыть, ты ж сам писал: unix_timestamp, только аргумент в скобки возьми!Палыч писал(а):Теперь бы понять как данные вида " '2002-06-04 11:56' перевести в '1079597469'
Добавлено спустя 3 минуты:
Только учти, что конструкция, которую ты только что написал, можно применять тогда, когда таблица-приемник меньше или равна (с т.з. post_id) таблицы-источника. Иначе поля, для строк которых не будет соответствия в источнике, обнулятся. Во всяком случае, в Оракле

И если я неправ, пусть старшие товарищи поправят меня
-
- Former team member
- Сообщения: 1139
- Стаж: 19 лет 2 месяца
- Откуда: Ленинград
Палыч писал(а):Не могу найти описание unix_timestamp как функции
Код: Выделить всё
`UNIX_TIMESTAMP(date)'
If called with no argument, returns a Unix timestamp (seconds since
`'1970-01-01 00:00:00'' GMT). If `UNIX_TIMESTAMP()' is called with
a `date' argument, it returns the value of the argument as seconds
since `'1970-01-01 00:00:00'' GMT. `date' may be a `DATE' string,
a `DATETIME' string, a `TIMESTAMP', or a number in the format
`YYMMDD' or `YYYYMMDD' in local time:
mysql> select UNIX_TIMESTAMP();
-> 882226357
mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');
-> 875996580
When `UNIX_TIMESTAMP' is used on a `TIMESTAMP' column, the function
will receive the value directly, with no implicit
"string-to-unix-timestamp" conversion. If you give
`UNIX_TIMESTAMP()' a wrong or out-of-range date, it will return 0.
И если я неправ, пусть старшие товарищи поправят меня
-
- Former team member
- Сообщения: 1139
- Стаж: 19 лет 2 месяца
- Откуда: Ленинград
-
- Former team member
- Сообщения: 9683
- Стаж: 18 лет 11 месяцев
- Откуда: Питер
- Благодарил (а): 1 раз
- Поблагодарили: 27 раз
Код: Выделить всё
update posts set posts.post_time = 'unix_timestamp (select postt_time from postso where posts.post_id = postso.post_id)'
?/DiOs писал(а):надо немножко иначе where строить.
Добавлено спустя 1 минуту 14 секунд:
по post_id равны/DiOs писал(а):Т.е. все значения ключа приемника должны иметься в источнике.
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.