SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 27.04.2010 17:35:37

cooler
Завсегдатай
Зарегистрирован: 14.01.2010
Сообщений: 52

timestamp

Здравствуйте, сразу хочу извинится за много созданных повторных темы. При создании темы была ошибка, я думал что тема не создана, и периодически нажимал f5.
А теперь к вопросу. У меня в таблице есть поле time_end  TIMSTAMP.
Сейчас имею строку с полем time_end = '2010-04-27 17:12:14'. У меня есть хранимая процедура. В ней я проверяю, если дата time_end уже наступила, я выполняю какието действия.
Делаю  это примерно так UNIX_TIMESTAMP( NOW() ) >= UNIX_TIMESTAMP( ptime_end ); ptime_end - переменная в хранимой процедуре типа TIMESTAMP, эта переменная в данном случае равна '2010-04-27 17:12:14'. Года происходит сравнение мое время (на машине) '2010-04-27 16:30:14', но условие почемуто выполняется всеравно (как будто время уже наступило). В чем проблема? Заранее благодарен.

Неактивен

 

#2 28.04.2010 04:46:44

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: timestamp

Сравнение дат — штука достаточно хитрая. В обычной жизни сервер учитывает, что
время в разных часовых поясах разное. Когда же Вы пытаетесь его обмануть, преоб-
разуя даты к простому числу через UNIX_TIMESTAMP, эта информация теряется.

Т.е. у меня стойкое ощущение, что Вы сравниваете даты в разных часовых поясах.

Соответственно, попробуйте сравнивать NOW() >= ptime_end smile

Неактивен

 

Board footer

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