SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 09.03.2010 12:02:43

Doom
Участник
Зарегистрирован: 04.02.2009
Сообщений: 3

UNIX_TIMESTAMP

UPDATE post SET `dateline`= 
UNIX_TIMESTAMP(cast(REPLACE(cast(FROM_UNIXTIME(`dateline`) as char), '2007', '2010') as UNSIGNED))
WHERE `dateline` > UNIX_TIMESTAMP('2007-01-01 00:00:01') and `dateline` < UNIX_TIMESTAMP('2007-12-31 23:59:59')

По идее все должно быть хорошо, и даты на форуме(vBulletin) должны измениться.
Но проблема в том что после исполнения команды значение колонки "dataline" становиться 0.
В чем может быть проблема?
Формат даты: "1266485927" то бишь > 18.02.2010, 11:38

Неактивен

 

#2 09.03.2010 12:13:08

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: UNIX_TIMESTAMP

Попробуйте так:

UPDATE post SET `dateline`=  UNIX_TIMESTAMP(FROM_UNIXTIME(`dateline`) + INTERVAL 3 YEAR) WHERE `dateline` > UNIX_TIMESTAMP('2007-01-01 00:00:01') and `dateline` < UNIX_TIMESTAMP('2007-12-31 23:59:59')

Неактивен

 

#3 09.03.2010 12:16:01

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: UNIX_TIMESTAMP

Ваш запрос будет работать если убрать cast(... AS UNSIGNED)

Неактивен

 

#4 09.03.2010 14:08:23

Doom
Участник
Зарегистрирован: 04.02.2009
Сообщений: 3

Re: UNIX_TIMESTAMP

Премного благодарен за помощь.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson