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

Форум MySQL

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

 

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

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

тема: Выборка из базы данных
 
 автор: kis-kis   (23.11.2006 в 18:46)   письмо автору
 
 

Есть таблица:


CREATE TABLE `j_vacancy` (
  `id` int(11) NOT NULL auto_increment,
  `userid` int(11) default '0',
  `job_title` text NOT NULL,
  `cat` int(1) NOT NULL default '0',
  `gorod` int(1) NOT NULL default '0',
  `sex` int(1) NOT NULL default '0',
  `study` int(1) NOT NULL default '0',
  `expwork` int(1) NOT NULL default '0',
  `age_from` text NOT NULL,
  `age_before` text NOT NULL,
  `zp` text NOT NULL,
  `graf` int(1) NOT NULL default '0',
  `zan` int(1) NOT NULL default '0',
  `text_vacancy` text NOT NULL,
  `org` text NOT NULL,
  `name` text NOT NULL,
  `tel` text NOT NULL,
  `email` text NOT NULL,
  `show_email` int(1) default '0',
  `who` int(1) NOT NULL default '0',
  `period` text NOT NULL,
  `date` text NOT NULL,
  `style` text NOT NULL,
  `status` int(1) default '0',
  PRIMARY KEY  (`id`),
  KEY `cat` (`cat`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=107 ;


Колонка period - количество дней.
Формат даты (date) - 00.00.0000

Как мне выбрать все данные из нее, удовлетворяющие условию:

Время в данный момент больше времени из колонки date + period дней?

Спасибо.

   
 
 автор: Trianon   (23.11.2006 в 18:57)   письмо автору
 
   для: kis-kis   (23.11.2006 в 18:46)
 

сперва было бы неплохо изменить тип колонки

   
 
 автор: kis-kis   (23.11.2006 в 19:17)   письмо автору
 
   для: Trianon   (23.11.2006 в 18:57)
 

Какой? Что посоветуете?

   
 
 автор: elenaki   (23.11.2006 в 19:40)   письмо автору
 
   для: kis-kis   (23.11.2006 в 19:17)
 

подозреваю, что вот этой:
`date` text NOT NULL,
если ей сделать тип date, то с ним удобней будет работать.
PS а разве date не является зарезервированным словом?

   
 
 автор: kis-kis   (23.11.2006 в 20:08)   письмо автору
 
   для: elenaki   (23.11.2006 в 19:40)
 

Является.

Хорошо, пусть будет тип date, тогда как будет выглядеть условие?

   
 
 автор: Trianon   (23.11.2006 в 20:11)   письмо автору
 
   для: elenaki   (23.11.2006 в 19:40)
 

является - поэтому обрамление его обратными косыми кавычками оправданно.

   
 
 автор: kis-kis   (24.11.2006 в 13:47)   письмо автору
 
   для: Trianon   (23.11.2006 в 20:11)
 

Никто не подскажет?

   
 
 автор: AlexelA   (24.11.2006 в 15:02)   письмо автору
 
   для: kis-kis   (24.11.2006 в 13:47)
 

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

select * from j_vacancy
where curdate() > (date+period)

   
 
 автор: kis-kis   (24.11.2006 в 18:25)   письмо автору
 
   для: AlexelA   (24.11.2006 в 15:02)
 

Ошибка:

Error 1064 : 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 'where curdate() > (date+period)' at line 1

   
 
 автор: AlexelA   (24.11.2006 в 21:54)   письмо автору
 
   для: kis-kis   (24.11.2006 в 18:25)
 

А тип поля date какой: text или date?

   
 
 автор: kis-kis   (25.11.2006 в 17:41)   письмо автору
 
   для: AlexelA   (24.11.2006 в 21:54)
 

Можно сделать любой, с каким удобнее работать.
А так сейчас стоит text

   
 
 автор: AlexelA   (25.11.2006 в 18:33)   письмо автору
 
   для: kis-kis   (25.11.2006 в 17:41)
 

Поставьте тип date и используйте код, предлагавшийся ранее:

select * from j_vacancy
where curdate() > (date+period)

   
 
 автор: kis-kis   (26.11.2006 в 17:27)   письмо автору
 
   для: AlexelA   (25.11.2006 в 18:33)
 

Спасибо

   
 
 автор: AlexelA   (26.11.2006 в 17:32)   письмо автору
 
   для: kis-kis   (26.11.2006 в 17:27)
 

0000-00-00 - формат даты по-умолчанию.
При неправильном вводе забивается именно он.
Для корректного ввода, забивайте дату так: гггг-мм-дд, где
гггг - год
мм - месяц
дд - день

   
Rambler's Top100
вверх

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