Подозреваю нестабильность в работе мускульных функций now() и to_days()

waldi

Новичок
Господа! Вот какая проблема
Я уже сталкивался с тем, что мускульная функция abs() стабильно работает только с данными типа bigint, а не tinyint, пришлось заменить ее другой функцией и глюки прошли
А сейчас у меня подозрения в нестабильной работе мускульных функций now() и to_days() с данными типа timestamp.
Какой-то случайный бессистемный процесс, не могу отловить и смоделировать этот глюк :-(
Помогите, пожалуйста, может кто сталкивался?
 

waldi

Новичок
А что не так с функций ABS()?
нестабильная работа
Эту функцию я использовал в выражении, где аргументами были поля мускульной таблицы, я заметил, что выражение вычисляется то правильно, то неправильно, ну просто непредсказуемый результат, причем работала abs() некорректно именно с полем типа tinyint, выдавала результат как-то случайно то верный, то неверный
Тогда на одном из англоязычных форумов я и нашел рекомендацию не применять эту функцию для работы с данными типа tinyint, т к было сказано, что abs() стабильно работает только с данными типа bigint
Я переделал выражение без этой функции и нестабильность исчезла, менять тип поля в таблице я посчитал чрезмерным
 

Вурдалак

Продвинутый новичок
waldi, ну и при каких значениях/условиях/параметрах ABS() выдавала неверный результат? Какой был ожидаемый результат и фактический? То же касается и NOW() и TO_DAYS(). Приведи пример того, что ты называешь неверным результатом и ожидаемый результат.
 

waldi

Новичок
ABS применялась в условии where в запросе select к базе данных
я отлаживал этот запрос в mysql monitor прежде чем вставить его в пхп-шный скрипт и увидел, что запрос вытягивает инфу из базы не всю, которую должен вытащить
забыл сказать, что делал переход на новую версию мускуля mysql-server-5.0, в старой этот запрос и функция в нем работали корректно
Теперь нечто странное происходит при попытке воспользоваться функциями now() и to_days() в выражении, где аргументами выступают поля мускульной таблицы, имеющие тип timestamp
Запрос типа
update my_table set my_access_date = now()
иногда работает корректно, а иногда текущую дату не ставит, как вижу по логам и отладке
нечто аналогичное и с функцией to_days() в выражении над полями типа timestamp
Пока не пойму, где зарыта собака
 

zerkms

TDD infected
Команда форума
Для начинающих разработчиков лучший подход - всегда считать что ошибся ты, в первую очередь. И во вторую тоже. И только в третью начинать подозревать инструмент.

Поговорку про зеркало напоминать не буду.
 

waldi

Новичок
Уважаемые господа!
Я задавал конкретный вопрос.
Я спрашивал, НЕ СТАЛКИВАЛСЯ ли кто-нибудь с подобной ситуацией. Одни и те же скрипты на PHP4 и PHP5 с разными версиями MySQL в разных линуксах время от времени не делают запись текущего времени при обновлениях в базе данных. Если не сталкивались, скажите, что не сталкивались. Что касается ABS-а - доказано, исправлено и теперь все работает - есть такая фишка MySQL, как бы не протестовал чей-то скепсис. Это о непогрешимости инструментов. Любой инструмент имеет свои баги.
 

craz

Нестандартное звание
waldi
любой инструмент имеет баги, но когда инструментом пользуется несколько миллионов человек, а ошибка только у вас как думаете кто виноват?
 

Вурдалак

Продвинутый новичок
Что касается ABS-а - доказано
— ты можешь говорить что угодно. Что завтра будет метеоритный дождь, к примеру. А доказательства где? Кем доказано? Ты не можешь привести конкретного примера, просто говоришь, что иногда работает не так как надо. Как работает и как надо? Где ожидаемый и фактический результаты? Одни пустые слова. Если ты сам не разобрался в проблеме, так приведи ссылку где ты это вычитал. Может там написано что-то вменяемое.
 
Сверху