Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не обновляются данные при помощи UPDATE-запроса с вычисляемым значением
 
 автор: Eser   (04.04.2011 в 15:22)   письмо автору
 
 

update table set alert_days ='((to_days(current_date)-to_days(date_to_r))';


Вставляет 0

Если сделать в коммандной строке просто:
(to_days(current_date)-to_days(date_to_r))

Выведет3

Подскажите в чем засада
Разница в датах 3 дня.

  Ответить  
 
 автор: cheops   (04.04.2011 в 15:38)   письмо автору
 
   для: Eser   (04.04.2011 в 15:22)
 

Нужно убрать одиночные кавычки, MySQL рассматривает все что в них как строку и приводит затем к числу, т.е. к 0, чтобы функции сработали, кавычек не должно быть.
update table set alert_days = ((to_days(current_date)-to_days(date_to_r));

  Ответить  
 
 автор: Eser   (04.04.2011 в 15:40)   письмо автору
 
   для: cheops   (04.04.2011 в 15:38)
 

В этом случае он орет что кавычек нет.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

  Ответить  
 
 автор: cheops   (04.04.2011 в 15:47)   письмо автору
 
   для: Eser   (04.04.2011 в 15:40)
 

Таблица у вас как называется? Если table, то добавьте обратные кавычки
update `table` set alert_days = ((to_days(current_date)-to_days(date_to_r));

PS В командной строке запрос тоже выдает ошибку?

  Ответить  
 
 автор: Eser   (04.04.2011 в 15:48)   письмо автору
 
   для: cheops   (04.04.2011 в 15:47)
 

Я про командную и говорю.

  Ответить  
 
 автор: cheops   (04.04.2011 в 15:51)   письмо автору
 
   для: Eser   (04.04.2011 в 15:48)
 

А следующий результат вы каким запросом получили - приведите его полностью
>Выведет3

  Ответить  
 
 автор: Eser   (04.04.2011 в 15:58)   письмо автору
 
   для: cheops   (04.04.2011 в 15:51)
 

select (to_days(current_date)-to_days(date_to_r)) from table;

3дн

  Ответить  
 
 автор: cheops   (04.04.2011 в 17:52)   письмо автору
 
   для: Eser   (04.04.2011 в 15:58)
 

Хм... а столбец alert_days точно существует и нет ли ошибки при наборе запроса?
update `table` set alert_days =  (to_days(current_date)-to_days(date_to_r));

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования